home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / dev / src / lightcyc.lha / LightCycle / Light Cycle V0_200.s < prev    next >
Text File  |  1997-01-12  |  60KB  |  3,375 lines

  1. ;TOSPJPKPJPKAAAABMKHAAAAJHFJAAAAEMIEAAAAFNOAPPDMMGOPAAAACLMNPPDMMGOPAAAANOJJAHIJAPFO
  2. ;Light Cycle
  3.  
  4. ;Menu for Light cycle start 92.08.25.
  5. ;version unknown
  6. ;ranking 4=
  7. ;Corpright by Real Destruction of R/THE/K now knows as Rafik
  8. ;Tricity Vitava 1992
  9.  
  10. ;written on Trashm-one 2.0 Deftronic do New Version!!!
  11.  
  12. ;  Light Cicle V$0.01xx + Menu.
  13. ;
  14. ;         by
  15. ;
  16. ;       R.The.K.
  17. ;          of
  18. ;R E A L   D E S T R U C T I O N
  19. ;
  20. ;Vitava 1992.08.02
  21. ;Updates:
  22. ;1992.08.03    Keyboard, Add 1 Light Cycle, 5 Bipl
  23. ;1992.08.08    Other Analize
  24. ;1992.08.09    Kill only one
  25. ;1992.08.10    Correct Kill, Enter Restart
  26. ;1992.08.13     ? ? ?, Points
  27. ;1992.08.15    Kill points bug
  28. ;1992.08.22    Choose Control
  29. ;1992.08.25    Menu
  30. ;1992.09.11    23:40:00...,Better flash (with errors) [P.S. or not]
  31. ;1992.09.12    3Points
  32. ;1992.09.16    End when flash end
  33. ;1992.09.17    .pp ?
  34. ;1992.09.26    Color font menu
  35. ;1992.09.28    przerwania Creatu(o)ry(a) dolaczone ???
  36. ;1992.10.01    m - wlancza,wylancza muzyke, zycia,credits (wersja podstaw.)
  37. ;1992.10.02    Live, little corect
  38. ;1992.10.17    Tlo.itd.itp.xtd.atd.itp.... . .  .  .    .     .      .       .
  39. ;MCMXCII.X.XVIII ? ? ?
  40. ;1992.10.18    Zmiana miejsca przerwania
  41. ;1992.10.24    Zmiana spowrotem z 3 przerwaniem nie gasi stacji,Speed Enable
  42. ;               p pause and p continiue, no player, dol punkty
  43. ;1992.10.25
  44. ;1992.10.29    Track Disk Device (drive turn off wow!)
  45. ;1992.10.30    oblalem bramki na prawku, dopisuje jakies bzdury tzn poczatek
  46. ;        game over,przeniesione zycia i ich pojawianie sie
  47. ;        test komputerow itd.
  48. ;1992.11.06    contynuacja game over    (lenght 38280 83 86 88) 38396 38486
  49. ;1992.11.11    swieto wyzwolenia czegos tam, jasno-ciemno i ciemno-jasno
  50. ;        versia $12e-$13d Game_over_seq:
  51. ;1992.11.23    18 zdalem prawko !!!!,password dorzucony, ok 607lini efecty
  52. ;1992.11.24    sciemnianie do menu
  53. ;1992.11.26    * ? ! ? * -do not
  54. ;1992.12.04    * ? ! ? * -next d.n.
  55. ;1992.12.23,24    >extern,test przezycia (czy player O_K_Alive
  56. ;        divs facked up, fast error correct,cut something
  57. ;        left shift=no vertical
  58. ;1993.01.03    Lea Copper(pc)
  59. ;1993.01.04    Ciekawe ile bede mial 2 ???,load level,grettings,some error in
  60. ;        alive ???,!!! CHECK THIS !!!
  61. ;????.??.??    alive ok!
  62. ;1993.02.17    hi score dorzucone. hi_score_p: |wyzej|
  63. ;1993.05.16    optimize,optymize,... 163-188 z 63000-59914.17.20
  64. ;        to macro jest chore
  65. ;1993.07.22    Jak ja dawno tego nie ogladalem,
  66. ;1994.08.12    
  67. ;        184»1a4
  68. ;  96.04.17    co to k. jest iridin?
  69. ;      dorzucam klawisze spod low level library
  70.  
  71. ;Checked to xxx line
  72. ;wykopac a5 z controls !
  73. ;stanolem na 580 credits table: !!
  74.  
  75. ;UWAGA PRZERABIAM NA xx(a5)
  76. ;Cos nie tak z pas table ?
  77.  
  78. ;lowlevel
  79. _AddKBInt:    equ    -$3c
  80. _RemKBInt:    equ    -$42
  81.  
  82.     incdir    hd1:sources/
  83.     include    macra.s
  84.  
  85. ;            INCDIR    'df0:'
  86.             INCDIR    'hd1:Sources/LightCycle/'
  87.  
  88. MUSIC=1
  89. KEYTEST=1
  90. SAVE=1
  91.  
  92. Wysokosc:    equ    8    ;Wys fontow
  93.  
  94.     IFEQ    SAVE
  95. *    *    *    *    *    *    *    *    *
  96. Tlo2        equ    $155000
  97.     >extern    'tlo2+.pic',Tlo2    ;$a098
  98. Fonts        equ    tlo2+$a098
  99.     >extern    'slp2.fnt',Fonts    ;$300
  100. mt_data        equ    $130000
  101. *    >extern    'mod.voice from rv-125',mt_data ;141654 $22956
  102.     >extern    'mod.soviet dog',mt_data    ;131304 $200e8
  103.     ENDIF
  104.  
  105.  
  106. *******************************************************************************
  107. *                    PROGRAM                      *
  108. *******************************************************************************
  109.  
  110.  
  111.     Section    TheProgram,Code_C
  112.  
  113.  *****
  114. *        t             t
  115.  *****  ttt  aa   r r ttt
  116.       *  t  a  a   r   t
  117. ******   t   aaaa  r   t
  118. Start:
  119.  
  120.     lea    DosName(pc),a1
  121.     EXEC
  122.     CALL    OldOpenLibrary
  123.     move.l    d0,DosBase
  124.     beq.w    ExitNow
  125.  
  126.     move.l    4.w,a6
  127.     lea    lowlevelname,a1
  128.     CALL    OldOpenLibrary
  129.     ml    d0,lowlevelbase
  130.     beq.w    CloseDos
  131.  
  132.     ml    d0,a6
  133.     sub.l    a1,a1
  134.     lea    KeyboardInt,a0
  135.     CALL    AddKBInt
  136.     ml    d0,inthandle
  137.     beq.w    CloseLibrary
  138.  
  139.     bsr    StartIrq    ;muzyka w przerwaniach
  140.     lea    $dff000,a5
  141.  
  142.     bsr    TrackDiskDevice
  143. ;menu
  144.     lea    BitplanAdres+2,a0
  145.     move.l    #Ekran,d2
  146.     moveq    #4,d0        ;Ilosc bitplanow
  147.     bsr    Copp_Loop
  148.  
  149. ;gra
  150.     lea    BitplanADR+2,a0
  151.     move.l    #Ekran,d2    ;Ekran gry
  152.     moveq    #5,d0        ;Ilosc Bitplanow
  153.     bsr    Copp_Loop
  154.  
  155.     lea    Tlo2+$30,a0    ; z obrazka do Copper Listy !!!!
  156.     lea    ScreenMinColor(pc),a1
  157.     moveq    #16,d2    ;Ilosc Colorow
  158.     bsr    DoColor
  159.  
  160.     bsr    Fonty
  161.  
  162.     VERTICAL $100
  163.  
  164.     bsr    copy_tlo
  165.  
  166.     lea    Copper,a0
  167.     move.l    a0,$80(a5)
  168.  
  169.     bsr    CJM
  170.  
  171. ;Texty przed startem
  172.  
  173.     moveq    #0,d0
  174.  
  175.     moveq    #3,d6
  176.     move.l    #100,d5
  177. War_Loop:
  178.     lea    WarningText(pc),a0
  179.     bsr    WyswietlText
  180.     move.l    d5,d0
  181.     bsr    Wait_a_m
  182.  
  183.     bsr    JCM
  184. ;>>
  185.     bra.s    TheMenu
  186. ;>>
  187.     move.l    d5,d0
  188.     asr.l    #2,d0
  189.     bsr    Wait_a_m
  190.     subq    #1,d6
  191.     bne.s    War_Loop
  192.  
  193.  
  194.     moveq    #25,d0
  195.     bsr    Wait_a_m
  196.  
  197.     bsr    copy_tlo
  198.  
  199.     lea    GwiazdkaThings,a0
  200.     bsr    WyswietlText
  201.     moveq    #100,d0
  202.     bsr    Wait_a_m
  203.  
  204.     moveq    #25,d0
  205.     bsr    Wait_a_m
  206.  
  207.     bsr    JCM
  208.  
  209.  
  210.                  * * * * * * * * * * * * * * * * *
  211. *       *
  212. * *   * *
  213. *   *   *
  214. *       *
  215. *       *enu    ;;
  216. TheMenu:
  217.     bsr    copy_tlo
  218.     lea    MenuText(pc),a0        ;Menu Text
  219.     bsr    WyswietlText
  220.     lea    Copper,a0
  221.     move.l    a0,$80(a5)
  222.     bsr    CJM
  223.  
  224. Mouse:
  225.     VERTICAL $100
  226.  
  227.     bsr    ReadKey
  228.  
  229.     btst    #6,$bfe001        ;LMB = Start Game
  230.     beq.w    ChST
  231.  
  232.     btst    #10,$dff016
  233.     beq.w    The_Real_End_of_The_Game
  234.  
  235.     btst    #7,$bfe001        ;Joy Fire = Start Game
  236.     beq.s    ChST
  237.  
  238. ;    moveq    #%1,d0
  239. ;    bsr    Czytaj
  240.  
  241.     cmp.b    #$75,d0        ; ESC = Exit Game
  242.     beq    The_Real_End_of_The_Game
  243.     cmp.b    #$45,d0        ; * = Exit Game
  244.     beq    The_Real_End_of_The_Game
  245.  
  246.     cmp.b    #$5f,d0        ;F1 - Control One
  247.     bne.s    CheckTwo
  248.     bsr    ControlsOne
  249.     bra.s    TheMenu
  250. CheckTwo:
  251.     cmp.b    #$5d,d0        ;F2 - Control Two
  252.     bne.s    CheckThree
  253.     bsr    ControlsTwo
  254.     bra.w    TheMenu
  255. CheckThree:
  256.     cmp.b    #$5b,d0        ;F3 - Control Three
  257.     bne.s    CheckHi
  258.     bsr    ControlsThree
  259.     bra.w    TheMenu
  260. CheckHi:
  261.     cmp.b    #$59,d0        ;F4 - Hi Score
  262.     bne.s    CheckCode
  263.     bsr    JCM
  264.     move    #1,MenuEnter
  265.     bsr    hi_score_p    ;<NOT AT ALL>
  266.     bra    TheMenu
  267. CheckCode:
  268.     cmp.b    #$57,d0        ;F5 - Password
  269.     bne.s    CheckCredits
  270.     bsr    Password
  271.     bra    TheMenu
  272. CheckCredits:
  273.     cmp.b    #$55,d0        ;F6 - Credits
  274.     bne.s    Check_Start
  275.     bsr    Credits        ;wersja podstawowa
  276.     bra    TheMenu
  277. Check_Start:
  278.     cmp.b    #$4d,d0        ;F10 - Start
  279.     bne.s    ContCheck
  280. ChST:
  281.     bsr    Init_Game    ;Start Game
  282.     bra    TheMenu    ;powrot do menu
  283. ContCheck:
  284.     bra    Mouse
  285.                  * * * * * * * * * * * * * * * * *
  286. ControlsOne:
  287.     lea    Player1_Rgame(pc),a3
  288.     lea    PlayerOne(pc),a4
  289.     moveq    #$000f,d0
  290.     bra.s    ChangeControl
  291. ControlsTwo:
  292.     lea    Player2_Rgame(pc),a3
  293.     lea    PlayerTwo(pc),a4
  294.     move    #$00f0,d0
  295.     bra.s    ChangeControl
  296. ControlsThree:
  297.     lea    Player3_Rgame(pc),a3
  298.     lea    PlayerThree(pc),a4
  299.     move    #$0f00,d0
  300.  
  301. ChangeControl:
  302.     bsr    JCM
  303. ChangeContr:
  304.     bsr    copy_tlo
  305.  
  306.     lea    ControlText(pc),a0
  307.     bsr    WyswietlText
  308.     bsr    CJM
  309.  
  310. contr
  311.     VERTICAL $100
  312.     VERTICAL $101
  313.     bsr    ReadKey
  314.  
  315. *    moveq    #0,d0        ;LMB and Fire not akcept
  316. *    bsr    Czytaj
  317.     cmp.b    #$5f,d0        ;F1 - Joy port 1
  318.     bne.s    C_f2
  319.     move    #%0010,(a4)
  320.     bra.s    Change_Control_End
  321. C_f2:
  322.     cmp.b    #$5d,d0        ;F2 - Joy port 0
  323.     bne.s    C_f3
  324.     move    #%0001,(a4)
  325.     bra.s    Change_Control_End
  326. C_f3:
  327.     cmp.b    #$5b,d0        ;F3 - Keyboard
  328.     bne.s    C_f4
  329.     move    #%0100,(a4)
  330.     bra.s    Change_Control_End
  331. C_f4:
  332.     cmp.b    #$59,d0        ;F4 - Computer
  333.     bne.s    C_f5
  334.     move    #%1000,(a4)
  335.     bra    Change_Control_End
  336. C_f5:
  337. *    cmp.b    #$57,d0        ;F5 - RedefineKeys *dont work
  338. *    bne.s    C_F6
  339. *    move    #%0100,(a4)    ;Keyboard
  340. *    bsr    RedefineKeys
  341. *    bra    Change_Control_End
  342. C_f6:                ;F6 - No Player
  343.     cmp.b    #$55,d0
  344.     bne.s    C_f7
  345.     bsr    JCM
  346.     move    #0,(a3)        ;player nie gra i juz
  347.     rts
  348.  
  349. C_f7:                ; nothing at now
  350.     bra.s    contr
  351. Change_Control_End:    ;if you change somthing here,change in c_f6 too.!
  352.     bsr    JCM
  353.     move    #1,(a3)
  354.     rts
  355.  
  356. *RedefineKeys:
  357. *    rts
  358.  
  359.  *****               *  *  *
  360. *                    *    *** ****
  361. *      * **  *     ***  *  *   **
  362. *       *   * *   *  *  *  *     *
  363.  *****  *    **** ***** *  *  ***
  364.  
  365. Credits:    ;wersja podstawowa !
  366.  
  367. ;a gdyby to przerobic ?? ok!
  368.  
  369.     lea    CreditsTable(pc),a3
  370. creditsloop
  371.     bsr    JCM ;d0-d6 a0
  372.     bsr    copy_tlo    ;a0,a1,d0,d1
  373.     tst.l    (a3)
  374.     bne.s    noecr
  375.     rts
  376. noecr
  377.     move.l    (a3)+,a0
  378.     bsr    WyswietlText ;d0,a0,a1,a2
  379.     bsr    CJM ;d3-d5 a0-a1
  380.     bsr    czekay    ;d0
  381.  
  382.     bra.s    creditsloop
  383.  
  384. CreditsTable:
  385.  dc.l CreditsText0,CreditsText1,CreditsText2,CreditsText3,CreditsText4
  386.  dc.l 0
  387.  
  388. ;Password by R.The.K./R.D. for Light Cycle
  389. ;Wersion unknown
  390. ;Rozpoznaje kody klawiszy. WOW !
  391. ;                 R E A L   D E S T R U C T I O N
  392. Password:
  393.     bsr    JCM
  394.  
  395. WaitKey:
  396.     clr.b    Key
  397.     IFNE    KEYTEST
  398. .1    tst.b    Key
  399.     beq.s    .1
  400.     ENDIF
  401.     rts
  402. ReadKey:
  403.     IFNE    KEYTEST
  404.     move.b    $bfec01,d0
  405.     ELSE
  406.     moveq    #0,d0
  407.     ENDIF
  408.     rts
  409. Ppass:
  410.     bsr    WaitKey
  411.  
  412.     bsr    copy_tlo
  413.  
  414.     lea    Text(pc),a0
  415.     bsr    WyswietlText
  416.  
  417.     bsr    CJM
  418.     move.l    #p_text+6,Password_Adr
  419.  
  420. Loop_P:
  421.     btst    #6,$bfe001
  422.     beq    End
  423. Loop2:
  424.     cmp.b    #$ff,6(a5)
  425.     bne.s    Loop2
  426.  
  427. Ttest:
  428.     btst    #6,$bfe001
  429.     beq    End
  430.  
  431.     bsr    ReadKey
  432.  
  433.     lea    Table,a0
  434.     tst.b    $60(a0)
  435.     bne.s    .shift
  436.     tst.b    $61(a0)
  437.     bne.s    .shift
  438. ;czyôê shifta
  439.     clr.b    Shift
  440.     bra.s    .nies
  441. .shift
  442.     st    Shift
  443. .nies
  444.  
  445. ;Enter and Return
  446.     cmp.b    #$79,d0    ;enter
  447.     beq.s    Yes_Password
  448.  
  449.     cmp.b    #$77,d0    ;return
  450.     bne.s    No_Password
  451. Yes_Password:
  452.     bra.s    Check_Password
  453. No_Password:
  454. ;Del
  455.     cmp.b    #$7d,d0    ;del
  456.     bne.s    lb_0
  457.     tst    PasswordNr
  458.     beq.s    lb_0
  459.     subq    #1,PasswordNr
  460.     subq.l    #1,Password_Adr
  461.     move.l    Password_Adr,a0
  462.     move.b    #'_',(a0)+
  463.     move.b    #'_',(a0)
  464. lb_0
  465.     btst    #0,$bfec01 ;?
  466.     beq    Loop_P
  467.  
  468.     move.b    #0,$bfec01
  469.     bsr    Search    ;szuka i wrzuca litere
  470.  
  471.     lea    p_text(pc),a0            ;Text
  472.     bsr    WyswietlText
  473.  
  474.     bra    Loop_P
  475.  
  476.  **** *             *
  477. *     *             *
  478. *     ***   *    ** * *
  479. *     *  * * *  *   **
  480.  **** *  *  ***  ** * * Password
  481. Check_Password:
  482.     lea    Password_Table(pc),a1
  483.     moveq    #0,d2    ;password nr
  484.     moveq    #0,d1
  485.  
  486. Pas_next:
  487.     lea    6+p_text(pc),a0
  488.     moveq    #12,d0    ;ile liter
  489. Chc_Next:
  490.     move.b    (a0)+,d1
  491.     cmp.b    (a1),d1
  492.     beq.s    f1o
  493.  
  494.     add.b    #32,d1
  495.     cmp.b    (a1),d1 ;duze dla malych liter
  496.     beq.s    f1o
  497.  
  498.     sub.b    #64,d1
  499.     cmp.b    (a1),d1 ; i male dla duzych liter
  500.     bne.s    NextPassword
  501. f1o:
  502.     addq.l    #1,a1
  503.     subq    #1,d0
  504.     bne.s    Chc_Next
  505. ;chaslo znalezione
  506.     move    #$fff,$180(a5)
  507.     bsr.s    Czysc_password
  508.     move    d2,Password_NR ;do rozpoznania ktory password
  509.     bsr    Password_Effect ;niektore daja natychmiastowe efekty
  510.     rts ;powrot do menu
  511.  
  512. NextPassword:
  513.     addq    #1,d2
  514.     cmp    #ilosc_chasel,d2    ;ilosc hasel
  515.     bne.s    nolastpas
  516. ;koniec chasel
  517.     move    #$600,$180(a5) ;niema takigo passwordu
  518.     bsr.s    Czysc_password
  519.     bsr    JCM
  520.     rts ;powrot do menu
  521.  
  522. nolastpas
  523.     move.l    d2,d1
  524.     muls    #12,d1
  525.     lea    Password_Table(pc),a1
  526.     add.l    d1,a1
  527.     bra.s    Pas_next
  528.  
  529. Czysc_password:
  530.     move.l    #p_text+6,Password_Adr
  531.     move    #0,PasswordNr
  532.     lea    6+p_text(pc),a0
  533.     moveq    #12-1,d0
  534. liniuj:
  535.     move.b    #'_',(a0)+
  536.     dbf    d0,liniuj
  537.     rts
  538.  
  539.  ****                         *
  540. *                             *
  541.  ****   *    **    * **  ***  ***
  542.      * * *  *  *    *   *     *  *
  543. *****   ***  *****  *    ***  *  *
  544.  
  545. Search:
  546.     tst.b    Shift    ;1wcisniety 0puszczony
  547.     beq.s    No_Shift
  548.     lea    Shift_Table(pc),a0
  549.     bra.s    Ok_Ok_Cont
  550. No_Shift:
  551.     lea    No_Shift_Table(pc),a0
  552. Ok_Ok_Cont:
  553.     moveq    #0,d1    ;' '
  554. Szukaj:
  555.     cmp.b    (a0)+,d0
  556.     beq.s    Found
  557.     addq.l    #1,a0
  558.     addq    #1,d1
  559.     cmp    #90,d1    ;za 'z'+troche znaczkow
  560.     bne.s    Szukaj
  561.     rts
  562. Found:
  563.     move.l    Password_Adr(pc),a1
  564.     addq    #1,PasswordNr
  565.     cmp    #12,PasswordNr
  566.     bne.s    Nie_caly_Pasw
  567.     move    #11,PasswordNr
  568.     subq.l    #1,Password_Adr
  569. Nie_caly_Pasw:
  570.     addq.l    #1,Password_Adr
  571.     move.b    (a0),(a1)
  572.     rts
  573. czekay: ;czeka az puscisz lub fire,mouse
  574.     btst    #0,$bfec01
  575.     bne.s    czekay
  576.     move.b    $bfec01,d0
  577. czek:
  578.     btst    #7,$bfe001 ;joy fire
  579.     beq.s    ecze
  580.     btst    #6,$bfe001 ;lmb
  581.     beq.s    ecze
  582.     cmp.b    $bfec01,d0
  583.     beq.s    czek
  584. ecze    rts
  585.  
  586. Password_Effect:
  587.     bsr.w    JCM
  588.     bsr.w    copy_tlo
  589. p0:
  590.     move.w    Password_NR(pc),d0
  591.     add.w    d0,d0
  592.     add.w    d0,d0
  593.     move.l    PassTable(pc,d0.w),a0
  594.     cmp.l    #0,a0
  595. ;    tst.l    a0
  596.     beq.s    Jeszcze_niema
  597.     bsr    WyswietlText
  598.     bsr.w    CJM
  599.     bsr    czekay
  600.     bsr.w    JCM
  601.     rts
  602. Jeszcze_niema:
  603.     bsr.w    CJM
  604.     move    #$f00,$180(a5)
  605.     bsr.w    JCM
  606.     rts
  607.  
  608. PassTable: dc.l AlienTXT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT
  609.  dc.l EmptyT,EmptyT,EmptyT,mtvTXT,LockyTXT,0,0,0,0,0,0
  610.  dc.l PillarTXT,0,KaneTXT,CreatTXT,0,0
  611.  
  612. ***** ***** *    * *****
  613.   *   *     *    *   *
  614.   *   ***    ****    *
  615.   *   *     *    *   *
  616.   *   ***** *    *   *
  617.  
  618.  
  619. ***
  620. WyswietlText:        ;a0 text
  621. ***
  622.     btst    #14,2(a5)
  623.     bne.s    WyswietlText    ;?
  624.  
  625.     moveq    #0,d0    ;just clear
  626.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  627. OffsetC:
  628.     moveq    #0,d0
  629.     move.b    (a0)+,d0
  630.     bne.s    SameLine
  631.     move.b    (a0)+,d0
  632.     bne.s    noe
  633.     rts
  634. noe
  635.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  636.     muls    #4*40,d0
  637.     add.l    d0,a1
  638.     bra.s    OffsetC
  639. SameLine:
  640.     sub.b    #$20,d0            ;right character
  641.     add.w    d0,d0
  642.     add.w    d0,d0
  643.     move.l    FontADR(pc,d0.w),a2        ;odczyt odresu fonta
  644. BitP4:
  645.     moveq    #21-1,d0        ;wysokosc
  646. Copy:
  647.     move.w    (a2),(a1)    ;copiowanie na ekran
  648.     lea    40(a2),a2
  649.     lea    40(a1),a1
  650.     move.w    (a2),(a1)
  651.     lea    3*40(a2),a2
  652.     lea    3*40(a1),a1
  653.     dbf    d0,Copy
  654.     lea    [-21*4*40+2](a1),a1
  655.  
  656.     bra.s    OffsetC
  657. FontADR:
  658.         blk.l    100,0
  659.  
  660. BlitterClear:
  661.     WAITBLITTER
  662.  
  663.     move.l    a0,$50(a5)        ;BLTAPT
  664.     move.l    #$01000000,$40(a5)    ;BLTCON0 d=a
  665.     move.l    #$00000000,$64(a5)        ;BLTAMOD
  666.     move.w    #[255*64*3]+[320/16],$58(a5)    ;BLTSIZE
  667.  
  668.     rts
  669.  
  670.  ****
  671. *
  672. *
  673.  **** -opy tlo
  674.  
  675. ;a0,a1,d0,d1
  676. copy_tlo:
  677.     lea    Ekran,a1
  678.     lea    Tlo2+152,a0
  679.     move.w    #256-1,d0    ;ilosc lini
  680. Linia_Loop:
  681.     moveq    #80/4-1,d1
  682. Linia_s_l:    move.l    (a0)+,(a1)+
  683.     dbf    d1,Linia_s_l
  684.  
  685.     lea    80(a0),a0
  686.  
  687.     moveq    #80/4-1,d1
  688. Czysc_dwie_linie:
  689.     move.l    #0,(a1)+
  690.     dbf    d1,Czysc_dwie_linie
  691.  
  692.     dbf    d0,Linia_Loop
  693.     rts
  694.  
  695. ********
  696. *      *
  697. * ******
  698. *   ****
  699. * ******
  700. *      *
  701. ********nd    ;;
  702. The_Real_End_of_The_Game:
  703.     btst    #14,$dff002
  704.     bne.s    The_Real_End_of_The_Game
  705.  
  706.     bsr.w    JCM
  707.  
  708.     bsr    StopIrq    ;muzyka w przerwaniach
  709.  
  710.  
  711.                 endprog:
  712.  
  713.     bsr    FreeMem
  714.  
  715.     IFNE    MUSIC
  716.     jsr    mt_end
  717.     ENDIF
  718.  
  719.     lea    Gfxname(pc),a1
  720.     CALL    OldOpenLibrary
  721.     beq.s    Error
  722.     move.l    d0,a1
  723.     move.l    38(a1),$dff080
  724.     jsr    -414(a6)    ;closelibrary
  725.  
  726.  
  727.     ml    lowlevelbase(pc),a6
  728.     ml    inthandle(pc),a1
  729.     CALL    RemKBInt
  730.  
  731. CloseLibrary:
  732.     ml    4.w,a6
  733.     ml    lowlevelbase(pc),a1
  734.     CALL    CloseLibrary
  735.  
  736. CloseDos:
  737.     EXEC
  738.     move.l    DosBase,a1
  739.     CALL    CloseLibrary
  740.  
  741. ExitNow:    ;cant even open a dos!
  742.     moveq    #0,d0
  743. Error:    rts
  744.  
  745. Wait_a_moment:
  746.     move.w    #400-1,d1
  747. Wait_a_m:
  748.     VERTICAL $100
  749.     VERTICAL $101
  750.  
  751.     btst    #6,$bfe001
  752.     bne.s    .1
  753.     btst    #7,$bfe001
  754.     bne.s    .1
  755.  
  756.     dbf    d1,Wait_a_m
  757. .1
  758.     moveq    #0,d0
  759.     rts
  760.  
  761. Copp_Loop:
  762.     move.l    d2,d1
  763.     swap    d1
  764.     move.w    d1,(a0)
  765.     addq.l    #4,a0
  766.     move.l    d2,d1
  767.     add.l    #40,d2        ;Adr nast Bitpl.
  768.     move.w    d1,(a0)
  769.     addq.l    #4,a0
  770.  
  771.     subq.b    #1,d0            ;Pentla
  772.     bne.s    Copp_Loop
  773.     rts
  774.  
  775. ;Przerzuca colory z ifa do Copper listy !
  776. ;by Thestruction of De R.K.
  777. ;Vitava 1992.08.04.
  778. ;a0-adres colorow w iffie
  779. ;a1-gdzie wrzucac w copper liscie
  780. ;d2-ilosc kolorow
  781.  
  782. DoColor:            ;Przerzuca Colory
  783.  
  784.     move.w    #$180,d3    ;kolor startowy
  785. DoCol:    moveq    #3-1,d1
  786.     moveq    #0,d0        ;Clear
  787. DoColor3Loop:
  788.     move.b    (a0)+,d4
  789.     ror.b    #4,d4
  790.     add.b    d4,d0
  791.     rol.w    #4,d0
  792.     dbra    d1,DoColor3Loop
  793.     ror.w    #4,d0
  794.     move.w    d3,(a1)+
  795.     move.w    d0,(a1)+
  796.     addq.w    #2,d3
  797.     subq.b    #1,d2
  798.     bne.s    DoCol
  799.     rts
  800. ;robi tabele adresow fontow
  801. Fonty:
  802.     lea    FontADR(pc),a1
  803.     lea    Tlo2+152+80,a0        ;pentla dla adresow fontow
  804.     moveq    #100,d0            ;ilosc fontow
  805. cmp1:    moveq    #20,d1        ;ile w lini
  806. CMP:
  807.     move.l    a0,(a1)+
  808.     addq.l    #2,a0
  809.     subq.b    #1,d0
  810.     beq.s    .ok
  811.     subq.b    #1,d1
  812.     bne.s    CMP
  813.     add.l    #[21*40*4]-40,a0
  814.     bra.s    cmp1
  815. .ok    rts
  816.  
  817. ScreenMinColor:
  818.     blk.l    16*2,0
  819.  
  820. *    *
  821. *    *
  822. *    *
  823. ******
  824. *    *
  825. *    *
  826. *    * i Score
  827.  
  828. **********************************
  829. ;Password metamorphoses to hiscore. . .
  830. ;                 R E A L   D E S T R U C T I O N
  831.  
  832. hhhhh    dc.l    0    ;***********
  833.  
  834. hi_score_p:
  835.     btst    #0,$bfec01    ;pusc klawisz cholero
  836.     bne.s    hi_score_p
  837.  
  838.     bsr    JCM
  839.  
  840.     bsr    copy_tlo
  841.  
  842.     tst.w    MenuEnter    ;wejscie z menu
  843.     bne    Move_HI
  844.  
  845.     lea    Enter_T(pc),a0
  846.     bsr.w    WyswietlText
  847.     bsr    CJM
  848.  
  849.     lea    HighScoreData(pc),a0
  850.     move.l    hhhhh,d0
  851.     moveq    #1,d1
  852. szk    cmp.l    (a0),d0
  853.     bpl    okioki
  854.     lea    16(a0),a0
  855.     addq.w    #1,d1
  856.     cmp.w    #10,d1
  857.     bne    szk
  858. ;gowno nie wlazlez do hi score
  859.     bra    Move_HI
  860. okioki
  861.     cmp.w    #10,d1
  862.     bne    no10
  863.     move.b    #'1',Enter_T+2
  864.     move.b    #'0',Enter_T+3
  865.     bra    d10z
  866. no10    add.w    #'0',d1
  867.     move.b    d1,Enter_T+3
  868. d10z
  869.     move.l    #Enter_T+5,Password_Adr
  870.     lea    17+Enter_T(pc),a0
  871.     move.l    hhhhh,d0
  872.     bsr    Przelicz_ty_
  873.  
  874.     lea    Enter_T(pc),a0
  875.     bsr.w    WyswietlText
  876.  
  877.     moveq    #0,d0
  878. LoopX
  879.     VERTICAL $100
  880.  
  881.     cmp.b    #63,$bfec01
  882.     bne.s    NL_S    ;wcisniety !
  883.     move.b    #1,Shift
  884. NL_S
  885.     cmp.b    #61,$bfec01
  886.     bne.s    NP_S    ;wcisniety !
  887.     move.b    #1,Shift    ;1 wcisniety
  888. NP_S:
  889.     cmp.b    #62,$bfec01
  890.     bne.s    NL_SW    ;wycisniety
  891.     move.b    #0,Shift
  892. NL_SW:
  893.     cmp.b    #60,$bfec01
  894.     bne.s    NP_SW    ;wycisniety
  895.     move.b    #0,Shift    ;0 puszczony
  896. NP_SW:
  897.  
  898. ;Enter and Return
  899.     cmp.b    #$77,$bfec01    ;return
  900.     beq.s    Enter_hi
  901.     cmp.b    #$79,$bfec01    ;enter
  902.     beq.s    Enter_hi
  903.  
  904. ;Del
  905.     cmp.b    #$7d,$bfec01
  906.     bne.s    ol2
  907.     cmp.w    #0,PasswordNr
  908.     beq.s    ol2
  909.     subq.w    #1,PasswordNr
  910.     subq.l    #1,Password_Adr
  911.     move.l    Password_Adr,a0
  912.     move.b    #' ',(a0)+
  913.     move.b    #' ',(a0)
  914. ol2:
  915.     btst    #0,$bfec01
  916.     beq.w    LoopX
  917.     move.b    $bfec01,d0
  918.     move.b    #0,$bfec01
  919.     bsr.w    Search2    ;szuka i wrzuca litere
  920.  
  921.     lea    Enter_T(pc),a0
  922.     bsr.w    WyswietlText
  923.  
  924.     bra.w    LoopX
  925.  
  926. Enter_hi
  927.     bsr    JCM
  928.     bsr    copy_tlo
  929.     lea    HighScoreData(pc),a1
  930.     move.l    hhhhh,d0
  931.     moveq    #1,d1
  932. ksz    cmp.l    (a1),d0
  933.     bpl    The_place
  934.     lea    16(a1),a1
  935.     addq.w    #1,d1
  936.     bra    ksz
  937.  
  938. The_place
  939.     moveq    #10,d2
  940.     sub.w    d1,d2
  941. ;    subq.w    #1,d2
  942.     lea    EndHii(pc),a2
  943.     lea    16+EndHii(pc),a3
  944. ujii0    moveq    #16-1,d3
  945. ujii    move.b    -(a2),-(a3)
  946.     dbf    d3,ujii
  947.     dbf    d2,ujii0
  948.  
  949.     move.l    d0,(a1)+    ;Wrzuca punkty
  950.     lea    5+Enter_T(pc),a0
  951.     move.b    (a0)+,(a1)+    ;przerzuca do hi score <podstawowego
  952.     move.b    (a0)+,(a1)+
  953.     move.b    (a0)+,(a1)+
  954.     move.b    (a0)+,(a1)+
  955.     move.b    (a0)+,(a1)+
  956.     move.b    (a0)+,(a1)+
  957.     move.b    (a0)+,(a1)+
  958.     move.b    (a0)+,(a1)+
  959.     move.b    (a0)+,(a1)+
  960.     move.b    (a0)+,(a1)+
  961.     move.b    (a0)+,(a1)+
  962.  
  963.  
  964. Move_HI
  965.     move.w    #0,MenuEnter
  966.     lea    4+OnePla(pc),a1
  967.     lea    4+HighScoreData(pc),a0
  968.     moveq    #10-1,d0
  969. copnij                ;zmienia format do wyswietlenia
  970.     move.b    (a0)+,(a1)+
  971.     move.b    (a0)+,(a1)+
  972.     move.b    (a0)+,(a1)+
  973.     move.b    (a0)+,(a1)+
  974.     move.b    (a0)+,(a1)+
  975.     move.b    (a0)+,(a1)+
  976.     move.b    (a0)+,(a1)+
  977.     move.b    (a0)+,(a1)+
  978.     move.b    (a0)+,(a1)+
  979.     move.b    (a0)+,(a1)+
  980.     move.b    (a0)+,(a1)+
  981.     addq.l    #5,a0    ;punkty olac
  982.     lea    11(a1),a1
  983.     dbf    d0,copnij
  984.  
  985.     lea    OnePla+16,a0
  986.     lea    HighScoreData,a1
  987.     moveq    #10-1,d1
  988. ilscor
  989.     move.l    (a1),d0
  990.     lea    16(a1),a1
  991.     bsr    Przelicz_ty_
  992.     lea    22(a0),a0    ;???
  993.  
  994.     dbf    d1,ilscor
  995.  
  996.     lea    Hi_Text(pc),a0
  997.     bsr    WyswietlText
  998.  
  999.     bsr    CJM
  1000.  
  1001.     move.b    #0,$bfec01
  1002.  
  1003. .1    tst.b    $bfec01
  1004.     bne.s    rreettss
  1005.     btst    #6,$bfe001
  1006.     bne    .1
  1007. rreettss
  1008.     bsr    JCM
  1009.     rts
  1010.  
  1011. ;dzies
  1012. ;wescie:
  1013. ;    a0 gdze wrzucac liczbe w asci
  1014. ;    d0 liczba
  1015. Przelicz_ty_
  1016.     movem.l    d0-d2/a0-a1,-(sp)
  1017.     lea    Dzes,a1    ;tabela dziesiatek (wykopanie divsa
  1018.     moveq    #0,d2
  1019.     move.l    (a1)+,d1
  1020. L_00
  1021.     move.l    (a1)+,d1
  1022.     beq    nomore_tears
  1023.  
  1024. .1    cmp.l    d1,d0
  1025.     blt.s    l_02        ;Gdy mniejszy
  1026.     sub.l    d1,d0
  1027.     addq.b    #1,d2
  1028.     bra.s    .1
  1029. l_02
  1030.     move.b    d2,(a0)+    ;Wrzutka liczby
  1031.     moveq    #0,d2
  1032.     bra.s    L_00
  1033. nomore_tears
  1034.     sub.l    #5,a0
  1035.     add.b    #$30,(a0)+    ;?'0'=$30
  1036.     add.b    #$30,(a0)+
  1037.     add.b    #$30,(a0)+
  1038.     add.b    #$30,(a0)+
  1039.     add.b    #$30,(a0)+
  1040.     movem.l    (sp)+,d0-d2/a0-a1
  1041.     rts
  1042.  
  1043. Enter_T:
  1044.     dc.b    0
  1045.     dc.b    200,' 1.            00000',0
  1046.     even
  1047.     dc.w    0
  1048. Hi_Text:    ;'                    '
  1049. ;11 na nazwe
  1050.     dc.b    0
  1051.     dc.b   3,'     <Hi Score>',0
  1052. OnePla    dc.b  30,' 1.                 ',0 ;reszta zostanie wrzucona
  1053.     dc.b  52,' 2.                 ',0
  1054.     dc.b  74,' 3.                 ',0
  1055.     dc.b  96,' 4.                 ',0
  1056.     dc.b 118,' 5.                 ',0
  1057.     dc.b 140,' 6.                 ',0
  1058.     dc.b 162,' 7.                 ',0
  1059.     dc.b 184,' 8.                 ',0
  1060.     dc.b 208,' 9.                 ',0
  1061.     dc.b 230,'10.                 ',0
  1062.     even
  1063.  
  1064. ;format zapisu dlugie slowo punkty potem 12 znakow nazwy [12 nie uzywany]
  1065. ;razem 16 bajtow
  1066. ;hiscore
  1067. HighScoreData:
  1068.  dc.l    10000
  1069.  dc.b '  Gfx by:   '    ;1
  1070.  dc.l    9999
  1071.  dc.b '  Slepper   '    ;2
  1072.  dc.l    7500
  1073.  dc.b ' Music by:  '    ;3
  1074.  dc.l    8756
  1075.  dc.b '  BFA/SCT   '    ;4
  1076.  dc.l    8576
  1077.  dc.b '  Dr.Stool  '    ;5
  1078.  dc.l    2222
  1079.  dc.b ' Code by:   '    ;6
  1080.  dc.l    2221
  1081.  dc.b 'Rafik/rdst  '    ;7
  1082.  dc.l    342
  1083.  dc.b '   Real     '    ;8
  1084.  dc.l    111
  1085.  dc.b 'Destruction '    ;9
  1086.  dc.l    5
  1087.  dc.b 'Prod 1992-6 '    ;10
  1088. EndHii
  1089.  blk.b    20,0
  1090.  
  1091.  
  1092. Search2:
  1093.     tst.b    Shift    ;1wcisniety 0puszczony
  1094.     beq.s    No_Shift2
  1095.     lea    Shift_Table(pc),a0
  1096.     bra.s    Ok_Ok_Cont2
  1097. No_Shift2:
  1098.     lea    No_Shift_Table(pc),a0
  1099. Ok_Ok_Cont2:
  1100.     move.b    d0,Szukaj2+3
  1101.     moveq    #0,d1    ;' '
  1102. Szukaj2:
  1103.     cmp.b    #$00,(a0)+
  1104.     beq.s    Found2
  1105.     addq.l    #1,a0
  1106.     addq.w    #1,d1
  1107.     cmp.w    #68,d1    ;za 'z'
  1108.     bne.s    Szukaj2
  1109.     rts
  1110. Found2:
  1111.     move.l    Password_Adr,a1
  1112.     addq.w    #1,PasswordNr
  1113.     cmp.w    #11,PasswordNr        ;ilosc znakow
  1114.     bne.s    Niecalywpis
  1115.     move.w    #10,PasswordNr
  1116.     subq.l    #1,Password_Adr
  1117. Niecalywpis:
  1118.     addq.l    #1,Password_Adr
  1119.     move.b    (a0),(a1)
  1120.     rts
  1121.  
  1122. **********************************
  1123.  
  1124.  
  1125.  
  1126. *    *      *    *    *****          *
  1127. *    *  **  **  ***   *     *  *  ** *    **
  1128. *    * *  * * *  *    *     *  * *   *   * *
  1129. **** *  *** * *  *    *****  ***  **  **  ****
  1130.           *                    *
  1131.         ***                 ****
  1132.  
  1133. ;ZROBIC LEVELY !!!!
  1134. Loadit:
  1135.     MOVEL    Dos
  1136.     moveq    #0,d0
  1137.     move.l    #1005,d2
  1138.     move.l    d5,d1
  1139. *    move.l    #FileName,d1
  1140.     jsr    -30(a6)    ;open file
  1141.     beq.w    Load_Error
  1142.     move.l    d0,Handle
  1143.     bsr    Seek
  1144.     move.l    d0,FileSize
  1145.     beq.w    Error
  1146. ;    bsr.s    AllocMem
  1147.  
  1148.     moveq    #0,d0
  1149.     move.l    Handle(pc),d1
  1150.     move.l    #LoadAdr,d2    ;gdzie ladowac
  1151.     move.l    FileSize(pc),d3
  1152.     CALL    Read
  1153.     cmp.w    #-1,d0
  1154.     beq.w    Error
  1155.     moveq    #0,d0
  1156.     move.l    Handle(pc),d1
  1157.     jsr    -36(a6)    ;close File
  1158.  
  1159. ;    bsr    FreeMem
  1160.  
  1161.     lea    LoadAdr,a0    ;skad brac dane
  1162.     lea    Iff,a1        ;gdzie dekompresowac
  1163.     move.l    FileSize(pc),d0
  1164.     bsr    Power_Packer
  1165.     rts
  1166. JumpLevel
  1167.     bra    Level0
  1168.     bra    Level1
  1169.     bra    Level2
  1170.     bra    Level3
  1171.     bra    Level4
  1172.     bra    Level5
  1173.     bra    Level6
  1174.     bra    Level7
  1175.     bra    Level8
  1176.     bra    Level9
  1177.     bra    Level10
  1178.  
  1179. Level0
  1180.     lea    Lev0Text,a0
  1181.     bsr    WyswietlText
  1182.     move.w    #2,Speed_tm
  1183.     move.l    #Level0_FM,d5
  1184. *    %0001    Prawo
  1185. *    %0010    Lewo
  1186. *    %0100    Dol
  1187. *    %1000    Gora
  1188.     move.w    #%0100,Lev_LastRuch1
  1189.     move.l    #$340056,Lev_PosX1
  1190.     move.w    #%0010,Lev_LastRuch2
  1191.     move.l    #$1050026,Lev_PosX2
  1192.     move.w    #%1000,lev_LastRuch3
  1193.     move.l    #$890076,Lev_PosX3
  1194.     rts
  1195. Level1
  1196.     lea    Lev0Text,a0
  1197.     bsr    WyswietlText
  1198.     move.w    #2,Speed_tm
  1199.     move.l    #Level1_FM,d5
  1200.     rts
  1201. Level2
  1202.     lea    Lev0Text,a0
  1203.     bsr    WyswietlText
  1204.     move.w    #2,Speed_tm
  1205.     move.l    #Level2_FM,d5
  1206.     rts
  1207. Level3
  1208.     lea    Lev0Text,a0
  1209.     bsr    WyswietlText
  1210.     move.w    #2,Speed_tm
  1211.     move.l    #Level3_FM,d5
  1212.     rts
  1213. Level4
  1214.     lea    Lev0Text,a0
  1215.     bsr    WyswietlText
  1216.     move.w    #2,Speed_tm
  1217.     move.l    #Level4_FM,d5
  1218.     rts
  1219. Level5
  1220.     lea    Lev0Text,a0
  1221.     bsr    WyswietlText
  1222.     move.w    #2,Speed_tm
  1223.     move.l    #Level5_FM,d5
  1224.     rts
  1225. Level6
  1226.     lea    Lev0Text,a0
  1227.     bsr    WyswietlText
  1228.     move.w    #1,Speed_tm
  1229.     move.l    #Level6_FM,d5
  1230.     rts
  1231. Level7
  1232.     lea    Lev0Text,a0
  1233.     bsr    WyswietlText
  1234.     move.w    #1,Speed_tm
  1235.     move.l    #Level7_FM,d5
  1236.     rts
  1237. Level8
  1238.     lea    Lev0Text(pc),a0
  1239.     bsr    WyswietlText
  1240.     move.w    #1,Speed_tm
  1241.     move.l    #Level8_FM,d5
  1242.     rts
  1243. Level9
  1244.     lea    Lev0Text,a0
  1245.     bsr    WyswietlText
  1246.     move.w    #1,Speed_tm
  1247.     move.l    #Level9_FM,d5
  1248.     rts
  1249. Level10
  1250.     lea    Lev0Text,a0
  1251.     bsr    WyswietlText
  1252.     move.w    #2,Speed_tm
  1253.     move.l    #Level10_FM,d5
  1254.     rts
  1255. Load_Error
  1256.     move.w    #$fff,$dff180
  1257.     move.w    #$f00,$dff180
  1258.     move.w    #$0f0,$dff180
  1259.     move.w    #$00f,$dff180
  1260.     move.w    #$000,$dff180
  1261.     btst    #6,$bfe001
  1262.     bne    Load_Error
  1263.     rts
  1264.  
  1265. Init_Game
  1266.     bsr.w    JCM
  1267.  
  1268.     lea    GameScreenColor,a0    ;ZMIENIC !
  1269.     bsr.w    Czysc_Colory    ;(32)
  1270.  
  1271. ;    lea    Points_Color,a0    ;ZMIENIC !
  1272. ;    bsr.w    Czysc_Colory    ;(32)
  1273.  
  1274.     move.w    Player1_Rgame,Player1_game
  1275.     move.w    Player2_Rgame,Player2_game
  1276.     move.w    Player3_Rgame,Player3_game
  1277.  
  1278.     move.l    #0,PunktyPierwszego
  1279.     move.l    #0,PunktyDrugiego
  1280.     move.l    #0,PunktyTrzeciego
  1281.  
  1282.     move.w    #4,Live1    ;zycia
  1283.     move.w    #4,Live2
  1284.     move.w    #4,Live3
  1285.  
  1286. ;    move.w    PlayerOne_M,PlayerOne
  1287. ;    move.w    PlayerTwo_M,PlayerTwo
  1288. ;    move.w    PlayerThree_M,PlayerThree
  1289.  
  1290. Start_Game:
  1291.     bsr.w    JCM
  1292.     bsr    copy_tlo
  1293.     moveq    #0,d0
  1294.     lea    JumpLevel(pc),a0
  1295.     move.w    Level(pc),d0
  1296.     add.w    d0,d0
  1297.     add.w    d0,d0
  1298.     add.l    d0,a0
  1299.     jsr    (a0)
  1300.     movem.l    d0-a6,-(a7)
  1301.     bsr    CJM
  1302.     movem.l    (a7)+,d0-a6
  1303.     bsr.w    Loadit
  1304.     jsr    TrackDiskDevice
  1305.     bsr    JCM
  1306.  
  1307.     lea    GameCopper,a0
  1308.     move.l    a0,$dff080
  1309.  
  1310. GameLoop:
  1311.  
  1312.     move.w    #0,Crash    ;ilosc wyeliminowanych
  1313.  
  1314.  
  1315.     lea    Iff+$30,a0    ; z obrazka do Copper Listy !!!!
  1316.     lea    MintimeColor,a1    ;dla jasno-ciemno
  1317. ;    lea    GameScreenColor,a1
  1318.     move.l    #32,d2    ;Ilosc Colorow
  1319.     bsr    DoColor
  1320.  
  1321.  
  1322.     move.w    #0,LFlash1
  1323.     move.w    #0,LFlash2
  1324.     move.w    #0,LFlash3
  1325.  
  1326.     tst.w    Player1_game
  1327.     beq.s    NoPlayer1_game
  1328.     move.l    Lev_PosX1,PosX
  1329.     bra.s    Player1_game_on
  1330. NoPlayer1_game:
  1331.     move.l    #0,PosX
  1332.  
  1333. Player1_game_on:
  1334.     tst.w    Player2_game
  1335.     beq.s    NoPlayer2_game
  1336.     move.l    Lev_PosX2,PosX2
  1337.     bra.s    Player2_game_on
  1338. NoPlayer2_game:
  1339.     move.l    #0,PosX2
  1340.  
  1341. Player2_game_on:
  1342.     tst.w    Player3_game
  1343.     beq.s    NoPlayer3_game
  1344.     move.l    Lev_PosX3,PosX3
  1345.     bra.s    Player3_game_on
  1346. NoPlayer3_game:
  1347.     move.l    #0,PosX3
  1348.  
  1349. Player3_game_on:
  1350.     lea    Iff+$98,a0    ;skad kopiowac
  1351.     lea    Ekran,a1    ;gdzie kopiowac
  1352.  
  1353. ;    move.l    #256,d0        ;ilosc lini do skopiowania
  1354.  
  1355. .2                    ;Z 5 Bitpl robi 5
  1356.     move.w    #256*5*40/4-1,d1
  1357. .1    move.l    (a0)+,(a1)+
  1358.     dbra    d1,.1
  1359.  
  1360. ;    dbf    d0,.2
  1361.  
  1362.     lea    GameCopper,a0
  1363.     move.l    a0,$dff080
  1364.  
  1365.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1366.     move.w    Live1,d1
  1367.     bsr.w    Next_Znaczek
  1368.  
  1369.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1370.     move.w    Live2,d1
  1371.     bsr.w    Next_Znaczek
  1372.  
  1373.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1374.     move.w    Live3,d1
  1375.     bsr.w    Next_Znaczek
  1376.  
  1377.     bsr.w    Ciemno_Jasno    ;ROZASNIA OBRAZ
  1378.  
  1379. *     **    **   ***
  1380. *    *  *  *  *  *  *
  1381. *    *  *  *  *  ***
  1382. ****  **    **   *
  1383. Loop:
  1384.  
  1385.     lea    Ekran+$bd17,a1        ;Adr. Ekranu
  1386.     move.l    PunktyPierwszego,d0
  1387.     bsr    Points
  1388.  
  1389.     lea    Ekran+$bd24,a1        ;Adr. Ekranu
  1390.     move.l    PunktyDrugiego,d0
  1391.     bsr    Points
  1392.  
  1393.     lea    Ekran+$bd31,a1        ;Adr. Ekranu
  1394.     move.l    PunktyTrzeciego,d0
  1395.     bsr    Points
  1396.  
  1397. ;zycia przeniesiono na koniec tercji search for 'pokaz_zycia_tm'
  1398.  
  1399.     lea    Table,a0
  1400.  
  1401.             tst.b    $19(a0)
  1402.         beq.s    no_Pause
  1403. Pause:
  1404.             tst.b    $19(a0)    ;a0 table p=pause
  1405.         bne.s    Pause
  1406. .p2            tst.b    $19(a0)
  1407.         beq.s    .p2
  1408. .p3            tst.b    $19(a0)
  1409.         bne.s    .p3
  1410. no_Pause:
  1411.         tst.b    $61(a0)            ;Prawy Shift=Restart
  1412.     bne    T_T_Te_st
  1413.         btst    #6,$bfe001        ;LMB or Fire Port0
  1414.     beq.w    End
  1415.         tst.b    $40(a0)            ;Space=End
  1416.     bne    End
  1417.  
  1418. *Pierwszy
  1419.     move.w    PosX,d0
  1420.     bne.s    OneDo
  1421.     move.w    PosY,d1
  1422.     beq.s    Drugi
  1423. OneDo:
  1424.     move.w    PosY,d1
  1425.     move.w    LastRuch,d4
  1426.     move.w    PlayerOne,d2
  1427.     bsr    Ruch
  1428.  
  1429.     move.w    d4,LastRuch
  1430.     move.w    d0,PosX
  1431.     move.w    d1,PosY
  1432.  
  1433. Drugi:
  1434.     move.w    PosX2,d0
  1435.     bne.s    DoDrugi
  1436.     move.w    PosY2,d1
  1437.     beq.s    Trzeci
  1438. DoDrugi:
  1439.     move.w    PosY2,d1
  1440.     move.w    PlayerTwo,d2
  1441.     move.w    LastRuch2,d4
  1442.  
  1443.     bsr    Ruch
  1444.  
  1445.     move.w    d4,LastRuch2
  1446.     move.w    d0,PosX2
  1447.     move.w    d1,PosY2
  1448.  
  1449. Trzeci:
  1450.     move.w    PosX3,d0
  1451.     bne.s    DoTrzeci
  1452.     move.w    PosY3,d1
  1453.     beq.w    End_All_Do
  1454. DoTrzeci:
  1455.     move.w    PosY3,d1
  1456.     move.w    PlayerThree,d2
  1457.     move.w    LastRuch3,d4
  1458.  
  1459.      bsr.w    Ruch
  1460.  
  1461.     move.w    d4,LastRuch3
  1462.     move.w    d0,PosX3
  1463.     move.w    d1,PosY3
  1464.  
  1465.  
  1466. End_All_Do:
  1467.     tst.b    Table+$60
  1468.     bne.s    Ultra_Speed    ;left shift=no vertical
  1469.  
  1470.     cmp    #1,Speed_tm ;1-fast
  1471.     bne.s    FSO126
  1472.     not    opz
  1473.     beq.s    Ultra_Speed
  1474. FSO126
  1475.     tst.w    Speed_tm    ;0 no vertical
  1476.     beq.s    Ultra_Speed    ;1 fast    (1 frame
  1477.                 ;2 normal (2 frames
  1478.     VERTICAL    $ff
  1479. Fast_Speed:
  1480.     VERTICAL    $100
  1481.  
  1482. Ultra_Speed:
  1483.  
  1484. **************
  1485. *PierwszyPlot*
  1486. **************
  1487.  
  1488.     move.w    PosX,d0        ;pozyzja x
  1489.     bne.s    DoOne
  1490.     move.w    PosY,d1        ;jezeli obie zero to olewa
  1491.     beq.s    Czysto1
  1492. DoOne:
  1493.     add.l    #1,PunktyPierwszego    ;punkty
  1494.     move.w    PosY,d1        ;pozycja y
  1495.     move.l    #2*40,d3    ;od ktorego bitplanu zaczynac
  1496.     bsr    Plot
  1497.     beq.s    Czysto1        ;jezeli nie zero to przeszkoda
  1498.  
  1499.     move.w    PlayerOne,d2
  1500.     btst    #3,d2
  1501.     beq.s    PierwszyBang
  1502.  
  1503. ;PierwszyComputer:
  1504.     move.w    LastRuch,d4
  1505.     bsr    ComputerMove
  1506.     bne.s    PierwszyBang
  1507.     move.w    d4,LastRuch
  1508.     move.w    d0,PosX
  1509.     move.w    d1,PosY
  1510.     bra.s    Czysto1
  1511. PierwszyBang:
  1512.     bsr    RunFlash1
  1513.     bra.w    Czysto1
  1514.  
  1515. ***********
  1516. *DrugiPlot*
  1517. ***********
  1518.  
  1519. Czysto1:
  1520.     move.w    PosX2,d0
  1521.     bne.s    DoTwo
  1522.     move.w    PosY2,d1
  1523.     beq.s    Czysto2
  1524. DoTwo:
  1525.     add.l    #1,PunktyDrugiego    ;punkty
  1526.     move.w    PosY2,d1
  1527.     move.l    #3*40,d3
  1528.     bsr    Plot
  1529.  
  1530.     beq.s    Czysto2
  1531.     move.w    PlayerTwo,d2
  1532.     btst    #3,d2
  1533.     beq.s    DrugiBang
  1534.  
  1535. ;DrugiComputer:
  1536.     move.w    LastRuch2,d4
  1537.     bsr    ComputerMove
  1538.     beq.s    TfoTfo
  1539. DrugiBang:
  1540.     bsr    RunFlash2
  1541.     bra.s    Czysto2
  1542. TfoTfo:
  1543.     move.w    d4,LastRuch2
  1544.     move.w    d0,PosX2
  1545.     move.w    d1,PosY2
  1546.  
  1547. *************
  1548. *Trzeci Plot*
  1549. *************
  1550.  
  1551. Czysto2:
  1552.  
  1553.     move.w    PosX3,d0
  1554.     bne.s    DoThree
  1555.     move.w    PosY3,d1
  1556.     beq.s    EndOfCicle
  1557. DoThree:
  1558.     add.l    #1,PunktyTrzeciego    ;punkty
  1559.     move.w    PosY3,d1
  1560.     move.l    #4*40,d3
  1561.     bsr    Plot
  1562.  
  1563.     beq.s    EndOfCicle
  1564.     move.w    PlayerThree,d2
  1565.     btst    #3,d2
  1566.     beq.s    TrzeciBang
  1567.  
  1568. ;TrzeciComputer:
  1569.     move.w    LastRuch3,d4
  1570.     bsr    ComputerMove2
  1571.     beq.w    TfoThere
  1572. TrzeciBang:
  1573.     bsr    RunFlash3
  1574.     bra.s    EndOfCicle
  1575. TfoThere:
  1576.     move.w    d4,LastRuch3
  1577.     move.w    d0,PosX3
  1578.     move.w    d1,PosY3
  1579.  
  1580. EndOfCicle:
  1581.     move.w    LFlash1,d0    ;czy pierwszy player miga ?
  1582.     beq.w    TestFlash2
  1583.  
  1584.     lea    GameScreenColor+18,a0    ;Colory w copper l.
  1585.     lea    Iff+$98+80,a1        ;do kopiowania obrazka
  1586.     lea    Ekran++80,a2        ; to tez
  1587.     move.w    Flash_1_loop,d1        ;penlta kolorow
  1588.     move.w    Flash_1_I_Loop,d2    ;pentla dodawan i odej
  1589.     move.w    Flash_Color_1,d3    ;co dodawac i co odejmowac
  1590.     bsr    Flash
  1591.     beq.s    NieCrashc1
  1592.     move.w    #1,Crash_in_LevelP1
  1593.  
  1594. NieCrashc1:
  1595.     move.w    d0,LFlash1    ;jezeli<>to miganie
  1596.     move.w    d1,Flash_1_loop
  1597.     move.w    d2,Flash_1_I_Loop
  1598.     move.w    d3,Flash_Color_1
  1599.  
  1600. TestFlash2:
  1601.     move.w    LFlash2,d0
  1602.     beq.w    TestFlash3
  1603.  
  1604.     lea    GameScreenColor+34,a0
  1605.     lea    Iff+$98+120,a1
  1606.     lea    Ekran+120,a2
  1607.     move.w    Flash_2_loop,d1
  1608.     move.w    Flash_2_I_Loop,d2
  1609.     move.w    Flash_Color_2,d3
  1610.     bsr    Flash
  1611.     beq.s    NieCrashc2
  1612.     move.w    #1,Crash_in_LevelP2
  1613. NieCrashc2:
  1614.     move.w    d0,LFlash2
  1615.     move.w    d1,Flash_2_loop
  1616.     move.w    d2,Flash_2_I_Loop
  1617.     move.w    d3,Flash_Color_2
  1618.  
  1619. TestFlash3:
  1620.     move.w    LFlash3,d0
  1621.     beq.w    Test_Flash_End
  1622.     lea    GameScreenColor+66,a0
  1623.     lea    Iff+$98+160,a1
  1624.     lea    Ekran+160,a2
  1625.     move.w    Flash_3_loop,d1
  1626.     move.w    Flash_3_I_Loop,d2
  1627.     move.w    Flash_Color_3,d3
  1628.     bsr    Flash
  1629.     beq.s    NieCrashc3
  1630.     move.w    #1,Crash_in_LevelP3
  1631. NieCrashc3:
  1632.     move.w    d0,LFlash3
  1633.     move.w    d1,Flash_3_loop
  1634.     move.w    d2,Flash_3_I_Loop
  1635.     move.w    d3,Flash_Color_3
  1636. Test_Flash_End:
  1637.  
  1638.     tst.w    LFlash1
  1639.     bne.w    Loop
  1640.     tst.w    LFlash2
  1641.     bne.w    Loop
  1642.     tst.w    LFlash3
  1643.     bne.w    Loop
  1644.  
  1645.     moveq    #0,d0
  1646.  
  1647.     tst.w    Player1_game    ;czy nie wylaczony
  1648.     bne.s    x_X_x
  1649.     addq.w    #1,d0
  1650. x_X_x:    tst.w    Player2_game
  1651.     bne.s    x_Y_x
  1652.     addq.w    #1,d0
  1653. x_Y_x:    tst.w    Player3_game
  1654.     bne.s    x_Z_x
  1655.     addq.w    #1,d0
  1656. x_Z_x:
  1657.     cmp.b    #3,d0 ;ilosc wylaczonych jezeli 2 lub trzech to se nie pograsz.
  1658.     beq    Game_over_seq
  1659.     cmp.b    #2,d0
  1660.     beq    Game_over_seq
  1661.  
  1662.     add.w    Crash,d0
  1663.     cmp.w    #2,d0        ;Ilosc wyeliminiwanych !
  1664.     blt.w    Loop
  1665. *    bne    T_T_Te_st    ?
  1666.  
  1667. T_T_Te_st:
  1668.  
  1669.  ***
  1670. *
  1671. * **
  1672. *  *
  1673. *** owno'tm
  1674.     tst.w    Crash_in_LevelP1    ;jezeli sie zniszczysz
  1675.     beq.s    NoNoSubLive1        ;to po skoniczeniu innych graczy
  1676.     sub.w    #1,Live1        ;odejmuje zycia
  1677. NoNoSubLive1:
  1678.     tst.w    Live1
  1679.     bne.s    Ne_1
  1680.     btst    #3,PlayerOne+1
  1681.     bne.s    computery_nie_gina_1    ;jezeli gra computer to traci punkty.
  1682.  
  1683.     move.l    PunktyPierwszego,Player1_to_High    ;dla hi score
  1684.     move.w    #1,Game_Over_Player_1
  1685.     move.w    #%1000,PlayerOne    ;jezeli zginoles to na twoje miejsce
  1686. *    move.w    #0,Player1_game        ;wchodzi komputer
  1687. computery_nie_gina_1:
  1688.     move.w    #4,Live1
  1689.     move.l    #0,PunktyPierwszego
  1690. Ne_1:
  1691. ;pokaz_zycia_tm
  1692.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1693.     move.w    Live1,d1
  1694.     bsr.w    Next_Znaczek
  1695.  
  1696.     tst.w    Crash_in_LevelP2
  1697.     beq.s    NoNoSubLive2
  1698.     sub.w    #1,Live2
  1699.  
  1700. NoNoSubLive2:
  1701.     tst.w    Live2
  1702.     bne.s    Ne_2
  1703.     btst    #3,PlayerTwo+1
  1704.     bne.s    computery_nie_gina_2
  1705.     move.l    PunktyDrugiego,Player2_to_High    ;dla hi score
  1706.     move.w    #1,Game_Over_Player_2
  1707.     move.w    #%1000,PlayerTwo
  1708. *    move.w    #0,Player2_game
  1709. computery_nie_gina_2:
  1710.     move.w    #4,Live2
  1711.     move.l    #0,PunktyDrugiego
  1712. Ne_2:
  1713.  
  1714. ;pokaz_zycia_tm2
  1715.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1716.     move.w    Live2,d1
  1717.     bsr.w    Next_Znaczek
  1718.  
  1719.     tst.w    Crash_in_LevelP3
  1720.     beq.s    NoNoSubLive3
  1721.     sub.w    #1,Live3
  1722. NoNoSubLive3:
  1723.     tst.w    Live3
  1724.     bne.s    Ne_3
  1725.     btst    #3,PlayerThree+1
  1726.     bne.s    computery_nie_gina_3
  1727.     move.l    PunktyTrzeciego,Player3_to_High    ;dla hi score
  1728.     move.w    #1,Game_Over_Player_3
  1729.     move.w    #%1000,PlayerThree
  1730. *    move.w    #0,Player3_game
  1731. computery_nie_gina_3:
  1732.     move.w    #4,Live3
  1733.     move.l    #0,PunktyTrzeciego
  1734. Ne_3:
  1735. ;pokaz_zycia_tm3
  1736.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1737.     move.w    Live3,d1
  1738.     bsr.w    Next_Znaczek
  1739.  
  1740.  
  1741. ;!Tuuuu czy przezyles
  1742.     tst.w    Player1_game
  1743.     beq.s    .1
  1744.     tst.w    Crash_in_LevelP1
  1745.     bne    .1
  1746.     btst    #3,PlayerOne+1
  1747.     beq.s    O_K_Alive
  1748. .1
  1749.     tst.w    Player2_game
  1750.     beq.s    .2
  1751.     tst.w    Crash_in_LevelP2
  1752.     bne    .2
  1753.     btst    #3,PlayerTwo+1
  1754.     beq    O_K_Alive
  1755. .2
  1756.     tst.w    Player3_game
  1757.     bne    go_on
  1758.     tst.w    Crash_in_LevelP3
  1759.     bne    go_on
  1760.     btst    #3,PlayerThree+1
  1761.     bne    go_on
  1762. ;jezeli przezyles !
  1763. O_K_Alive:
  1764.     move.w    #0,Crash_in_LevelP1
  1765.     move.w    #0,Crash_in_LevelP2
  1766.     move.w    #0,Crash_in_LevelP3
  1767.     BSR.W    Jasno_Ciemno
  1768.     lea    Copper,a0
  1769.     move.l    a0,$dff080
  1770.     bsr    copy_tlo
  1771.     lea    LevelPass(pc),a0
  1772.     bsr    WyswietlText
  1773.     bsr    CJM
  1774.     bsr    czekay
  1775.     bsr    JCM
  1776.     addq.w    #1,Level
  1777.     cmp.w    #9,Level
  1778.     bne    no0
  1779.     move.w    #0,Level
  1780. no0
  1781.     bra    Start_Game
  1782.  
  1783. go_on:
  1784.     move.w    #0,Crash_in_LevelP1
  1785.     move.w    #0,Crash_in_LevelP2
  1786.     move.w    #0,Crash_in_LevelP3
  1787.  
  1788. ;jezeli przezyly tylko komputery to game over !
  1789. ;tylko jak sie do tego zabrac ?
  1790.     moveq    #0,d0
  1791.     btst    #3,PlayerOne+1    ;jezeli komputer to dodaje
  1792.     beq.s    C_Cont_C11
  1793.     addq.w    #1,d0
  1794.     bra.s    C_Cont_C1
  1795. C_Cont_C11:
  1796.     tst.w    Player1_game    ;nie komputer to moze niegra (zginol lub cus)
  1797.     bne.s    C_Cont_C1
  1798.     addq.w    #1,d0
  1799. C_Cont_C1:
  1800.     btst    #3,PlayerTwo+1
  1801.     beq.s    C_Cont_C22
  1802.     addq.w    #1,d0
  1803.     bra.s    C_Cont_C2
  1804. C_Cont_C22:
  1805.     tst.w    Player2_game
  1806.     bne.s    C_Cont_C2
  1807.     addq.w    #1,d0
  1808. C_Cont_C2:
  1809.     btst    #3,PlayerThree+1
  1810.     beq.s    C_Cont_C33
  1811.     addq.w    #1,d0
  1812.     bra.s    C_Cont_C3
  1813. C_Cont_C33:
  1814.     tst.w    Player3_game
  1815.     bne.s    C_Cont_C3
  1816.     addq.w    #1,d0
  1817. C_Cont_C3:
  1818.     cmp.w    #3,d0
  1819.     bge.s    Game_over_seq    ;wieksze lub rowne !
  1820.  
  1821.     BSR.W    Jasno_Ciemno
  1822.     bra.w    GameLoop
  1823.  
  1824. Game_over_seq:
  1825.     BSR.W    Jasno_Ciemno
  1826.     bsr.w    copy_tlo
  1827.     lea    Copper,a0
  1828.     move.l    a0,$dff080
  1829.  
  1830.     lea    Game_Over_Text(pc),a0
  1831.     bsr.w    WyswietlText
  1832.     tst.w    Game_Over_Player_1
  1833.     beq.s    sadassd_1
  1834.     move.w    #0,Game_Over_Player_1    ;czysci wskaznik game over
  1835.  
  1836.     move.l    Player1_to_High(pc),d0
  1837.     lea    16+GO1Txt(pc),a0
  1838.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1839.     bsr.w    Tylko_Wrzuc
  1840.  
  1841.     lea    GO1Txt(pc),a0    ;wyswietla game over pl 1
  1842.     bsr.w    WyswietlText
  1843.     bsr    CJM
  1844.     bsr    czekay
  1845.     bsr    JCM
  1846.  
  1847.     bsr    copy_tlo
  1848.     bsr    CJM
  1849.     move.l    Player1_to_High(pc),hhhhh
  1850.     bsr    hi_score_p
  1851.     bsr    JCM
  1852.  
  1853. sadassd_1:
  1854.     tst.w    Game_Over_Player_2
  1855.     beq.s    sadassd_2
  1856.     move.w    #0,Game_Over_Player_2
  1857.  
  1858.     move.l    Player2_to_High,d0
  1859.     lea    16+GO2Txt(pc),a0
  1860.     move.w    #1,Special_P
  1861.     bsr.w    Tylko_Wrzuc
  1862.  
  1863.     lea    GO2Txt(pc),a0
  1864.     bsr.w    WyswietlText
  1865. sadassd_2:
  1866.     tst.w    Game_Over_Player_3
  1867.     beq.s    sadassd_3
  1868.     move.w    #0,Game_Over_Player_3
  1869.  
  1870.     move.l    Player3_to_High,d0
  1871.     lea    16+GO3Txt(pc),a0
  1872.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1873.     bsr.w    Tylko_Wrzuc
  1874.  
  1875.     lea    GO3Txt(pc),a0
  1876.     bsr.w    WyswietlText
  1877. sadassd_3:
  1878.     bsr    CJM
  1879.     bsr    czekay
  1880.     bsr    JCM
  1881.  
  1882.     rts
  1883.  
  1884. ******
  1885. *     *
  1886. *     *
  1887. ******
  1888. *     *
  1889. *     *
  1890. *     *uch
  1891.  
  1892. Ruch:
  1893.     btst    #0,d2
  1894.     beq.s    JoyPort1
  1895. JoyPort0:
  1896.     bsr    Joystick0
  1897.     bra.s    EndRuch
  1898. JoyPort1:
  1899.     btst    #1,d2
  1900.     beq.s    Keyb
  1901. ;Joy1
  1902.     bsr    Joystick1
  1903.     bra.s    EndRuch
  1904. Keyb:
  1905.     btst    #2,d2
  1906.     beq.s    Comp1            ****
  1907. ;Keyboard
  1908.     bsr    Keyboard
  1909.     bra.w    EndRuch
  1910. Comp1:
  1911.     bsr    Last
  1912. EndRuch:    rts
  1913.  
  1914. * * * * *
  1915. ComputerMove:
  1916. * * * * *
  1917. *    %0001    Prawo
  1918. *    %0010    Lewo
  1919. *    %0100    Dol
  1920. *    %1000    Gora
  1921.  
  1922.     btst    #0,d4
  1923.     beq.s    CompLewoL
  1924. ;CompPrawoLast            ;Zderzenie z prawej
  1925.     subq.w    #1,d0    ;x-1
  1926.     addq.w    #1,d1    ;y+1
  1927.     bsr    Plot
  1928.     bne.s    DolZajety
  1929.     move.w    #%0100,d4    ;jedz w dol
  1930.     bra.w    CompRuchEnd
  1931. DolZajety:
  1932.     subq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  1933.     bsr    Plot
  1934.     bne.s    Kill
  1935.     move.w    #%1000,d4    ;jedz w gore
  1936.     bra.w    CompRuchEnd
  1937. CompLewoL:
  1938.     btst    #1,d4
  1939.     beQ.s    CompDownL
  1940. ;CompLewoLast
  1941.     addq.w    #1,d0
  1942.     addq.w    #1,d1
  1943.     bsr    Plot
  1944.     bne.s    DolZajety
  1945.     move.w    #%0100,d4    ;jedz w dol
  1946.     bra.w    CompRuchEnd
  1947. CompDownL:
  1948.     btst    #2,d4
  1949.     beQ.s    CompUpL
  1950. ;CompDownLast
  1951.     subq.w    #1,d1    ;Y-1
  1952.     subq.w    #1,d0    ;x-1
  1953.     bsr    Plot
  1954.     bne.s    LewoZajete
  1955.     move.w    #%0010,d4    ;jedz w lewo
  1956.     bra.w    CompRuchEnd
  1957. LewoZajete:
  1958.     addq.w    #2,d0
  1959.     bsr    Plot
  1960.     bne.s    Kill
  1961.     move.w    #%0001,d4    ;w prawo
  1962.     bra.w    CompRuchEnd
  1963. CompUpL:
  1964.     addq.w    #1,d1
  1965.     subq.w    #1,d0
  1966.     bsr    Plot
  1967.     bne.s    LewoZajete
  1968.     move.w    #%0010,d4    ;w lewo
  1969.  
  1970. CompRuchEnd:
  1971.     moveq    #0,d2
  1972.     rts
  1973. Kill:
  1974.     move.w    #$ffff,d2
  1975.     rts
  1976.  
  1977. ComputerMove2:
  1978.  
  1979.     btst    #0,d4
  1980.     beq.s    CompLewoL2
  1981. ;CompPrawoLast            ;Zderzenie z prawej
  1982.     subq.w    #1,d0    ;x-1
  1983.     subq.w    #1,d1    ;y-1
  1984.     bsr    Plot
  1985.     bne.s    GorZajety2
  1986.     move.w    #%1000,d4    ;jedz w dol
  1987.     bra.w    CompRuchEnd
  1988. GorZajety2:
  1989.     addq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  1990.     bsr    Plot
  1991.     bne.s    Kill
  1992.     move.w    #%0100,d4    ;jedz w dol
  1993.     bra.w    CompRuchEnd
  1994. CompLewoL2:
  1995.     btst    #1,d4
  1996.     beQ.s    CompDownL2
  1997. ;CompLewoLast
  1998.     addq.w    #1,d0        ;x+1
  1999.     subq.w    #1,d1        ;y-1
  2000.     bsr    Plot
  2001.     bne.s    GorZajety2
  2002.     move.w    #%1000,d4    ;jedz w gore
  2003.     bra.w    CompRuchEnd
  2004. CompDownL2:
  2005.     btst    #2,d4
  2006.     beQ.s    CompUpL2
  2007. ;CompDownLast
  2008.     subq.w    #1,d1    ;y-1
  2009.     addq.w    #1,d0    ;x+1
  2010.     bsr    Plot
  2011.     bne.s    PrawZajete2
  2012.     move.w    #%0001,d4    ;jedz w prawo
  2013.     bra.w    CompRuchEnd
  2014. PrawZajete2:
  2015.     subq.w    #2,d0    ;x-2 (pozycja przed zderzeniem)
  2016.     bsr    Plot
  2017.     bne.s    Kill
  2018.     move.w    #%0010,d4    ;w lewo
  2019.     bra.w    CompRuchEnd
  2020. CompUpL2:
  2021.     addq.w    #1,d1    ;y+1
  2022.     addq.w    #1,d0    ;x+1
  2023.     bsr    Plot
  2024.     bne.s    PrawZajete2
  2025.     move.w    #%0001,d4    ;w prawo
  2026.     bra.w    CompRuchEnd
  2027.  
  2028. Joystick0:
  2029.     move.w    $dff00a,d2        ;Port0
  2030.     bra.s    JoyStick
  2031. Joystick1:
  2032.     move.w    $dff00c,d2        ;Port0
  2033. JoyStick:
  2034.     btst    #1,d2
  2035.     beq.s    Left
  2036. ;Prawo
  2037.     btst    #1,d4
  2038.     bne.s    Last
  2039.     move.w    #%0001,d4
  2040.     addq.w    #1,d0
  2041.     bra.w    RuchEnd
  2042. Left:
  2043.     btst    #9,d2
  2044.     beq    UpDown        ;1=Lewo 0=Brak Lewa
  2045. ;Lewo
  2046.     btst    #0,d4
  2047.     bne.s    Last
  2048.     move.w    #%0010,d4
  2049.     subq.w    #1,d0
  2050.     bra.w    RuchEnd
  2051. UpDown:
  2052.     move.w    d2,d3
  2053.     lsr.w    #1,d3
  2054.     eor.w    d2,d3
  2055.     btst    #0,d3
  2056.     beq.s    Gora
  2057. ;Dol
  2058.     btst    #3,d4
  2059.     bne.s    Last
  2060.     move.w    #%0100,d4
  2061.  
  2062.     addq.w    #1,d1
  2063.     bra.s    RuchEnd
  2064. Gora:
  2065.     btst    #2,d4
  2066.     bne.s    Last
  2067.     btst    #8,d3
  2068.     beq.s    Last
  2069.  
  2070.     move.w    #%1000,d4
  2071.  
  2072.     sub.w    #1,d1
  2073.     bra.w    RuchEnd
  2074.  
  2075. Last:
  2076.     btst    #0,d4
  2077.     beQ.s    LewoL
  2078. ;PrawoLast
  2079.     addq.w    #1,d0
  2080.     bra.w    RuchEnd
  2081. LewoL:
  2082.     btst    #1,d4
  2083.     beQ.s    DownL
  2084. ;LewoLast
  2085.     subq.w    #1,d0
  2086.     bra.w    RuchEnd
  2087. DownL:
  2088.     btst    #2,d4
  2089.     beQ.s    UpL
  2090. ;DownLast
  2091.     addq.w    #1,d1
  2092.     bra.w    RuchEnd
  2093. UpL:
  2094.     subq.w    #1,d1
  2095.     bra.w    RuchEnd
  2096.  
  2097. RuchEnd:
  2098.     rts
  2099.  
  2100. *******
  2101. Plot: **
  2102. *******
  2103. ; a0 adr pocz lini na ekr
  2104. ; d0-pos x d1-pos y
  2105.  
  2106.     lea    Ekran,a0    ;Ekr start
  2107.     add.l    d3,a0
  2108.  
  2109.     lea    Ekran+2*40,a1    ;120
  2110.  
  2111.     move.w    d1,d2
  2112.     muls    #40*5,d2    ;Bajty w lini*wys
  2113.     add.l    d2,a0
  2114.     add.l    d2,a1
  2115.  
  2116.     move.w    d0,d2    ;save x
  2117.     lsr.w    #3,d2    ;/8
  2118.     not.b    d0
  2119.  
  2120. ;Check3Bitpl
  2121.     btst    d0,(a1,d2.w)
  2122.     bne.s    Zderzenie
  2123.  
  2124. ;Check4Bitpl
  2125.     add.l    #40,a1
  2126.     btst    d0,(a1,d2.w)
  2127.     bne.s    Zderzenie
  2128.  
  2129. ;Check5Bitpl
  2130.     add.l    #40,a1
  2131.     btst    d0,(a1,d2.w)
  2132.     bne.s    Zderzenie
  2133.  
  2134. ;NiemaZderzenia
  2135.     bset    d0,(a0,d2.w)
  2136.     not.b    d0
  2137.     moveq    #0,d2
  2138.     rts
  2139.  
  2140. Zderzenie:
  2141.     not.b    d0
  2142.     move.w    #$ffff,d2    ;Error Zderzenie
  2143.     rts
  2144.  
  2145.  
  2146. **** **** **** **** ****
  2147. Keyboard:
  2148. **** **** **** **** ****
  2149.  
  2150.     move.b    $bfec01,d2        ;Keyboard
  2151.  
  2152.     lea    Table,a0
  2153.     tst.b    $4e(a0)        ;prawo
  2154.     beq.s    .left
  2155. ;Prawo
  2156.     btst    #1,d4
  2157.     bne.w    Last
  2158.     move.w    #%0001,d4
  2159.     addq.w    #1,d0
  2160.     bra.w    KeybordEnd
  2161. .left
  2162.     tst.b    $4f(a0)        ;left arrow
  2163.     beq.s    .down
  2164. ;Lewo
  2165.     btst    #0,d4
  2166.     bne.w    Last
  2167.     move.w    #%0010,d4
  2168.     subq.w    #1,d0
  2169.     bra.w    KeybordEnd
  2170. .down
  2171.     tst.b    $4d(a0)        ;dóî
  2172.     beq.s    .up
  2173. ;Dol
  2174.     btst    #3,d4
  2175.     bne.w    Last
  2176.     move.w    #%0100,d4
  2177.  
  2178.     addq.w    #1,d1
  2179.     bra.s    KeybordEnd
  2180. .up
  2181. ;góra
  2182.     tst.b    $4c(a0)        ;dóî
  2183.     beq.w    Last        ;nic z powyûszych
  2184.     
  2185.     btst    #2,d4
  2186.     bne.w    Last
  2187.  
  2188.     move.w    #%1000,d4
  2189.  
  2190.     subq.w    #1,d1
  2191. KeybordEnd:
  2192.     rts
  2193. ****
  2194. *
  2195. **
  2196. *
  2197. *lash
  2198.  
  2199. RunFlash1:
  2200.     lea    GameScreenColor+18,a0
  2201.     move.l    #0,PosX
  2202.     move.w    #$0111,d3    ;kolory 1
  2203.     move.w    #2,LFlash1    ;jezeli<>to miganie (2=najpierw odejmowac)
  2204.     move.w    #16,Flash_1_loop    ;pentla colorow  (1=najpierw dodawac)
  2205.     move.w    #16*4,Flash_1_I_Loop    ;ile razy wykonac
  2206.     move.w    d3,Flash_Color_1
  2207.     rts
  2208.  
  2209. RunFlash2:
  2210.     lea    GameScreenColor+34,a0
  2211.     lea    Iff+$98+120,a1
  2212.     lea    Ekran+120,a2
  2213.     move.l    #0,PosX2
  2214.     move.w    #$0011,d3    ;kolory drugiego
  2215.     move.w    d3,Flash_Color_2
  2216.     move.w    #2,LFlash2    ;jezeli<>to miganie
  2217.     move.w    #16,Flash_2_loop    ;pentla colorow
  2218.     move.w    #16*4,Flash_2_I_Loop    ;ile razy wykonac
  2219.     rts
  2220.  
  2221. RunFlash3:
  2222.     lea    GameScreenColor+66,a0
  2223.     lea    Iff+$98+160,a1
  2224.     lea    Ekran+160,a2
  2225.     move.l    #0,PosX3
  2226.     move.w    #$0110,d3    ;kolory 3
  2227.     move.w    d3,Flash_Color_3
  2228.     move.w    #2,LFlash3    ;jezeli<>to miganie
  2229.     move.w    #16,Flash_3_loop    ;pentla colorow
  2230.     move.w    #16*4,Flash_3_I_Loop    ;ile razy wykonac
  2231.     rts
  2232.  
  2233. Flash:
  2234.     cmp.w    #1,d0
  2235.     beq.s    Flash_Add
  2236. ;Flash_Down:
  2237.     sub.w    d3,(a0)+
  2238.     addq.l    #2,a0
  2239.     sub.w    d3,(a0)+
  2240.     addq.l    #2,a0
  2241.     sub.w    d3,(a0)+
  2242.     addq.l    #2,a0
  2243.     sub.w    d3,(a0)+
  2244.  
  2245.     subq.w    #1,d1        ;Pentla (16 w dol i 16 w gore)
  2246.     bne.s    Flash_The_End
  2247.     moveq    #1,d0    ;teraz w gore
  2248.     move.w    #16,d1
  2249.     bra.s    Flash_The_End
  2250. Flash_Add:
  2251.     add.w    d3,(a0)+
  2252.     addq.l    #2,a0
  2253.     add.w    d3,(a0)+
  2254.     addq.l    #2,a0
  2255.     add.w    d3,(a0)+
  2256.     addq.l    #2,a0
  2257.     add.w    d3,(a0)+
  2258.  
  2259.     subq.w    #1,d1
  2260.     bne.s    Flash_The_End
  2261.     moveq    #2,d0    ;teraz w dol
  2262.     move.w    #16,d1    ;odnowienie pentli
  2263.  
  2264. Flash_The_End:    
  2265.     subq.w    #1,d2    ;16*odejmowac i szesn razy dod)
  2266.     bne.s    Flash_The_NOT_ALL_END
  2267.  
  2268.     moveq    #0,d0
  2269. BitCy
  2270.     btst    #14,$dff002
  2271.     bne.s    BitCy
  2272.  
  2273.     move.l    a1,$dff050        ;BLTAPT
  2274.     move.l    a2,$dff054        ;BLTDPT
  2275.     move.l    #$ffffffff,$dff044    ;BLTAFWM and LFWM
  2276.     move.l    #$9f00000,$dff040    ;BLTCON0 d=a i 0 do bltcon1
  2277.     move.l    #$00a000a0,$dff064        ;BLTAMOD i d
  2278.     move.w    #[255*64]+[320/16],$dff058    ;BLTSIZE
  2279.  
  2280.     add.w    #1,Crash    ;liczba zabitych
  2281.  
  2282.     moveq    #1,d5
  2283.     rts
  2284.  
  2285. Flash_The_NOT_ALL_END:
  2286.     moveq    #0,d5
  2287.     rts
  2288.  
  2289.  
  2290. *  *  *
  2291. Points:
  2292. *  *  *
  2293. ;To ..... ! Zamiena dana w pamieci na Dziesietna w asci !
  2294. ;dziekuje ci real destruction...
  2295.  
  2296. ;wescie:
  2297. ;    a1 adres ekranu (bez special
  2298. ;    a0 gdze wrzucac liczbe w asci
  2299. ;    d0 liczba
  2300.  
  2301.  
  2302.     lea    Hi,a0
  2303.     move.l    a0,a2
  2304. Tylko_Wrzuc
  2305.     lea    Dzes,a3    ;tabela dziesiatek (wykopanie divsa
  2306.     moveq    #0,d2
  2307.     move.l    (a3)+,d1
  2308. Dziel
  2309.     move.l    (a3)+,d1
  2310.     beq    nomore
  2311. PorLiczbe
  2312.     cmp.l    d1,d0
  2313.     blt.s    Moze        ;Gdy mniejszy
  2314.     sub.l    d1,d0
  2315.     addq.b    #1,d2
  2316.     bra.s    PorLiczbe
  2317. Moze
  2318.     move.b    d2,(a0)+    ;Wrzutka liczby
  2319.     moveq    #0,d2
  2320.     bra.s    Dziel
  2321. nomore
  2322.     tst.w    Special_P    ;czy specjalne wejscie (hi score,game over)
  2323.     beq.s    No_Special_P    ;nie to nie
  2324.     move.w    #0,Special_P
  2325.     sub.l    #5,a0
  2326.     add.b    #$30,(a0)+    ;?'0'=$30
  2327.     add.b    #$30,(a0)+
  2328.     add.b    #$30,(a0)+
  2329.     add.b    #$30,(a0)+
  2330.     add.b    #$30,(a0)+
  2331.     rts
  2332. Special_P:    dc.w    0
  2333. ;
  2334. No_Special_P:
  2335.     moveq    #0,d0
  2336.     moveq    #4,d1
  2337. More:
  2338.     lea    Fonts+$10*8,a0        ;Fonts
  2339. Offset:
  2340.     move.b    (a2)+,d0
  2341.     rol.w    #3,d0            ;*8
  2342.     add.l    d0,a0
  2343.  
  2344.     moveq    #8,d0
  2345. CopyFont:
  2346.     move.b    (a0)+,(a1)
  2347.     add.l    #40*5,a1
  2348.     subq.b    #1,d0
  2349.     bne.w    CopyFont
  2350.  
  2351.     sub.l    #8*40*5-1,a1
  2352.     dbra    d1,More
  2353.     rts
  2354.  
  2355. ;pokazuje ilosc zyc
  2356.  
  2357. Next_Znaczek:
  2358.     subq.w    #1,d1
  2359.     beq.s    Ent_Znaczek
  2360.     bmi.s    Ent_Znaczek  *to tez
  2361.     cmp.w    #5,d1
  2362.     bls.s    N_Znacz    ;nizszy,rowny
  2363.     moveq    #5,d1
  2364. N_Znacz:
  2365.     lea    Fonts+24,a0        ;znaczek zycia
  2366.     moveq    #8,d0
  2367. CopyZnaczek:
  2368.     move.b    (a0)+,(a1)
  2369.     add.l    #40*5,a1
  2370.     subq.b    #1,d0
  2371.     bne.w    CopyZnaczek
  2372.  
  2373.     sub.l    #8*40*5-1,a1
  2374.     subq.w    #1,d1
  2375.     bne.s    N_Znacz
  2376. Ent_Znaczek:    *jak i to
  2377.     rts
  2378.  
  2379. ******************************************
  2380. End:            ;(for the game) _Game_End_
  2381.  
  2382.     BSR.W    Jasno_Ciemno
  2383. ;    movem.l    (sp)+,d0-d7/a0-a6
  2384.     rts
  2385.  
  2386. ******************************************
  2387.  
  2388. KeyboardInt:
  2389.     push    d2-d7/a2-a4
  2390. ;przerwanko klawiaturki
  2391.     mb    d0,Key
  2392.     lea    Table,a0
  2393.     btst    #7,d0
  2394.     bne.s    .clr
  2395.     st.b    (a0,d0.w)
  2396.     bra.s    .1
  2397. .clr
  2398.     and.w    #$7f,d0
  2399.     clr.b    (a0,d0.w)
  2400. .1
  2401.     pop    d2-d7/a2-a4
  2402.     moveq    #0,d0
  2403.     rts
  2404. Table:    ds.b    256
  2405.  
  2406.  
  2407. ;Track disk device ,but i'm not sure at all. . .  .   .    .     .      .
  2408. ;destroyed by r.the.k/r.d. of course in vitava [2*2*50*12]/2+790+[x*x-2]
  2409. ;x=2
  2410. ;written on trash'm-one by deftronic.
  2411.  
  2412. TrackDiskDevice:
  2413.     rts
  2414.  
  2415.     movem.l    d0-d7/a0-a6,-(sp)
  2416.     move.l    4.w,a6
  2417.  
  2418.     sub.l    a1,a1
  2419.     jsr    -294(a6)    ;find task (name a1)
  2420.     move.l    d0,ReadReply+16    ;?
  2421.     lea    ReadReply,a1
  2422.     jsr    -354(a6)    ;addport (port a1)
  2423.     lea    DiskIO,a1    ;?
  2424.  
  2425.     moveq    #0,d0
  2426.     moveq    #0,d1
  2427.  
  2428.     lea    TrackName,a0
  2429.  
  2430.     jsr    -444(a6)     ;open device devName,unit,ioRequest,flags a0,d0,a1,d1
  2431.  
  2432.     tst.l    d0
  2433.     bne.s    Track_Error
  2434. * * * *
  2435.     lea    DiskIO,a1
  2436.     move.l    #ReadReply,14(a1)    ;set reply port
  2437.     lea    DiskIO,a1
  2438.     move.w    #9,28(a1)    ;command: TD_MOTOR
  2439.     move.l    #0,36(a1)    ;Turn motor off
  2440.     jsr    -456(a6)    ;DoIo
  2441.  
  2442. * * * *
  2443.     lea    ReadReply,a1
  2444.     jsr    -360(a6)    ;RemPort (port a1)
  2445.     lea    DiskIO,a1
  2446.     jsr    -450(a6)    ;CloseDevice (ioRequest a1)
  2447.  
  2448. Track_Error:
  2449.     movem.l    (sp)+,d0-d7/a0-a6
  2450.     rts
  2451.  
  2452. TrackName:    dc.b    'trackdisk.device',0,0
  2453.     even
  2454. DiskIO:    blk.l    20,0
  2455. ReadReply:    blk.l    8,0
  2456.  
  2457. Col_Zmienna:    dc.w    0
  2458.  
  2459. Ciemno_Jasno:
  2460. ;To ma rozjasnic obraz do dobrych kolorow !
  2461.  
  2462.     moveq    #0,d3
  2463.     moveq    #$f,d5
  2464. Color_The_Loop:
  2465.     bsr    Wait
  2466.     lea    GameScreenColor+2,a0    ;Kolory copper (gdzie wrzucac
  2467.     lea    MintimeColor+2,a1    ;co powinno byc (skad brac
  2468.     move.w    #2,Col_Zmienna
  2469. Three_l0:
  2470.     moveq    #32,d7 ;ilosc colorow
  2471. Three_l1:
  2472.     moveq    #3,d6
  2473.     moveq    #0,d2
  2474.     moveq    #$f,d4
  2475. Three_l2:
  2476.     move.w    (a1),d3
  2477.     and.w    d4,d3
  2478.     cmp.w    d5,d3
  2479.     bpl.s    .1
  2480.     moveq    #0,d3
  2481.     bra.s    NextcC
  2482. .1
  2483.     sub.w    d5,d3
  2484. NextcC:
  2485.     add.w    d3,d2
  2486.     lsl.w    #4,d5
  2487.     lsl.w    #4,d4
  2488.     subq.w    #1,d6
  2489.     bne.s    Three_l2
  2490.  
  2491.     move.w    d2,(a0)
  2492.     addq.l    #4,a0
  2493.     addq.l    #4,a1
  2494.     lsr.w    #8,d5
  2495.     lsr.w    #4,d5
  2496.  
  2497.     subq.w    #1,d7
  2498.     bne.w    Three_l1
  2499.  
  2500.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2501.     sub.w    #1,Col_Zmienna
  2502.     bne.s    Three_l0
  2503.  
  2504.     dbf    d5,Color_The_Loop
  2505.  
  2506.     rts
  2507.  
  2508.  
  2509. Jasno_Ciemno:
  2510. ;Sciemnia obrazek...
  2511.  
  2512.     moveq    #16,d0        ;to samo 15 czy 16 16!
  2513.  
  2514. Szesna_Loop:
  2515.     bsr    Wait
  2516.     lea    GameScreenColor+2,a0 (skad brac i gdzie wrzucac
  2517.     move.w    #2,Col_Zmienna
  2518.  
  2519. Point_SLoop:
  2520.     move.w    #32,d1
  2521. Ilosc_Loop:
  2522.     move.w    #%0000000000001111,d2
  2523.     move.w    #$0001,d3
  2524.     moveq    #0,d6
  2525.     moveq    #3,d5
  2526. Three_loop:
  2527.     move.w    (a0),d4
  2528.     and.w    d2,d4
  2529.     beq.s    NieSciemniaj
  2530.     sub.w    d3,d4
  2531. NieSciemniaj:
  2532.     lsl.w    #4,d2
  2533.     lsl.w    #4,d3
  2534.     add.w    d4,d6    ;wynik
  2535.     subq.w    #1,d5
  2536.     bne.s    Three_loop
  2537.  
  2538.     move.w    d6,(a0)
  2539.     addq.l    #4,a0
  2540.  
  2541.     subq.w    #1,d1    ;ilosc kolorow
  2542.     bne.s    Ilosc_Loop
  2543.  
  2544.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2545.     sub.w    #1,Col_Zmienna
  2546.     bne.s    Point_SLoop
  2547.  
  2548.     subq.l    #1,d0    ;Sciemnianie do zera $f
  2549.     bne.s    Szesna_Loop
  2550.     rts
  2551.  
  2552. JCM:
  2553. ;Sciemnia menu.
  2554. ;d0-d6 a0
  2555.     moveq    #16-1,d7
  2556. Szesna_loopM:
  2557.     VERTICAL $90
  2558.     VERTICAL $91
  2559.     lea    ScreenColor+2,a0 (skad brac i gdzie wrzucac
  2560. Point_SLoopM:
  2561.     moveq    #16-1,d1 ;ilosc kolorow
  2562. Ilosc_LoopM:
  2563.     moveq    #%0000000000001111,d2
  2564.     moveq    #$0001,d3
  2565.     moveq    #0,d6
  2566.     moveq    #3,d5
  2567. Three_loopM:
  2568.     move.w    (a0),d4
  2569.     and.w    d2,d4
  2570.     beq.s    NieSciemniajM
  2571.     sub.w    d3,d4
  2572. NieSciemniajM:
  2573.     lsl.w    #4,d2
  2574.     lsl.w    #4,d3
  2575.     add.w    d4,d6    ;wynik
  2576.     subq.w    #1,d5
  2577.     bne.s    Three_loopM
  2578.  
  2579.     move.w    d6,(a0)
  2580.     addq.l    #4,a0
  2581.  
  2582.     dbf    d1,Ilosc_LoopM
  2583.  
  2584.     dbf    d7,Szesna_loopM    ;Sciemnianie do zera $f
  2585.     rts
  2586.  
  2587. CJM:
  2588. ;To ma rozjasnic obraz do dobrych kolorow !
  2589. ;d3-d7 a0-a1
  2590.     moveq    #0,d3
  2591.     moveq    #$f,d5
  2592. Color_The_loopM:
  2593.     bsr    Wait_S
  2594.     lea    2+ScreenColor,a0    ;Kolory copper
  2595.     lea    2+ScreenMinColor(pc),a1    ;co powinno byc
  2596.     moveq    #16-1,d7 ;ilosc colorow
  2597. Three_L1M:
  2598.     moveq    #3,d6
  2599.     moveq    #0,d2
  2600.     moveq    #$f,d4
  2601. Three_l2M:
  2602.     move    (a1),d3
  2603.     and    d4,d3
  2604.     cmp    d5,d3
  2605.     bpl.s    NextCM
  2606.     moveq    #0,d3
  2607.     bra.s    NextcCM
  2608. NextCM:
  2609.     sub    d5,d3
  2610. NextcCM:
  2611.     add    d3,d2
  2612.     lsl    #4,d5
  2613.     lsl    #4,d4
  2614.     subq    #1,d6
  2615.     bne.s    Three_l2M
  2616.  
  2617.     move    d2,(a0)
  2618.     addq.l    #4,a0
  2619.     addq.l    #4,a1
  2620.     lsr    #8,d5
  2621.     lsr    #4,d5
  2622.  
  2623.     dbf    d7,Three_L1M
  2624.  
  2625.     dbf    d5,Color_The_loopM
  2626.  
  2627.     rts
  2628.  
  2629.  
  2630. Wait:
  2631.     move.l    d0,-(sp)
  2632.     moveq    #3-1,d0        ;opoznienie w Verticalach
  2633. Wwait:
  2634.     cmp.b    #$ff,$dff006
  2635.     bne.s    Wwait
  2636. wwait0:    cmp.b    #$fe,$dff006
  2637.     bne.s    wwait0
  2638.     dbf    d0,Wwait
  2639.     move.l    (sp)+,d0
  2640.     rts
  2641. Wait_S:
  2642.     move.l    d0,-(sp)
  2643.     moveq    #1,d0
  2644. ve2    cmp.b    #$fe,$dff006
  2645.     bne.s    ve2
  2646. ve3    cmp.b    #$ff,$dff006
  2647.     bne.s    ve3
  2648.     dbf    d0,ve2
  2649.     move.l    (sp)+,d0
  2650.     rts
  2651. Czysc_Colory:
  2652. ;Poniewaz kolory sa przerzucane gdzie indziej to to tworzy kolory 0
  2653.  
  2654.     move.w    #$180,d0
  2655.     moveq    #32,d1
  2656. Rub180:
  2657.     move.w    d0,(a0)+
  2658.     move.w    #0,(a0)+
  2659.     addq.w    #2,d0
  2660.     subq.w    #1,d1
  2661.     bne.s    Rub180
  2662.     rts
  2663.  
  2664. ;*********************************
  2665. ;* POWER PACKER DECRUNCH ROUTINE *
  2666. ;*********************************
  2667. ; Resourced by Mac of Katharsis!
  2668. ;
  2669. ;przy wejsciu w a0 start bloku,w d0 dlugosc bloku
  2670. ;    w a1 dokad ma zdepakowac
  2671. ;    kod jest calkowicie relokowalny
  2672. ;
  2673.  
  2674. Power_Packer:
  2675.     cmpi.l #'PP20',(a0)    ;tylko standartowe pliki
  2676.     bne.s rets        ;nie zakodowane etc.
  2677.     lea costam(pc),a2
  2678.     move.l 4(a0),(a2)
  2679.     add.l d0,a0
  2680.     movem.l    d1-d7/a2-a6,-(sp)
  2681.     bsr.s    lbCEAE
  2682.     movem.l    (sp)+,d1-d7/a2-a6
  2683. rets
  2684.     rts
  2685. lbCEAE
  2686.     move.l a1,a2
  2687.     lea costam(pc),a5
  2688.     move.l -(a0),d5
  2689.     moveq    #0,d1
  2690.     move.b d5,d1
  2691.     lsr.l #8,d5
  2692.     add.l d5,a1
  2693.     move.l -(a0),d5
  2694.     lsr.l d1,d5
  2695.     move.b    #$20,d7
  2696.     sub.b d1,d7
  2697. lbC000EC8
  2698.     bsr.s lbC000F3A
  2699.     tst.b d1
  2700.     bne.s lbC000EEE
  2701.     moveq #0,d2
  2702. lbC000ED0
  2703.     moveq #2,d0
  2704.     bsr.s lbC000F3C
  2705.     add.w d1,d2
  2706.     cmp.w #3,d1
  2707.     beq.w lbC000ED0
  2708. lbC000EDC
  2709.     moveq #8,d0
  2710.     bsr.s lbC000F3C
  2711.     move.b    d1,-(a1)
  2712.     dbf d2,lbC000EDC
  2713.     cmp.l    a1,a2
  2714.     bcs.s    lbC000EEE
  2715.     rts
  2716. lbC000EEE
  2717.     moveq #2,d0
  2718.     bsr.s    lbC000F3C
  2719.     moveq    #0,d0
  2720.     move.b    0(a5,d1.w),d0
  2721.     move.l    d0,d4
  2722.     move.w    d1,d2
  2723.     addq.w    #1,d2
  2724.     cmp.w    #4,d2
  2725.     bne.s lbC000F20
  2726.     bsr.s lbC000F3A
  2727.     move.l d4,d0
  2728.     tst.b d1
  2729.     bne.s lbC000F0E
  2730.     moveq    #7,d0
  2731. lbC000F0E
  2732.     bsr.s    lbC000F3C
  2733.     move.w    d1,d3
  2734. lbC000F12
  2735.     moveq #3,d0
  2736.     bsr.s lbC000F3C
  2737.     add.w    d1,d2
  2738.     cmp.w    #7,d1
  2739.     beq.w    lbC000F12
  2740.     bra.s    lbC000F24
  2741. lbC000F20
  2742.     bsr.s    lbC000F3C
  2743.     move.w    d1,d3
  2744. lbC000F24
  2745.     move.b    0(a1,d3.w),d0
  2746.     move.b    d0,-(a1)
  2747.     dbf d2,lbC000F24
  2748. *    move.w    d3,$00DFF180    ;kolor decrunchu    [a ja go wykopalem]
  2749.     cmp.l    a1,a2        ;troche go zmienilem    [r the k]
  2750.     bcs.s    lbC000EC8
  2751.     rts
  2752. lbC000F3A
  2753.     moveq    #1,d0
  2754. lbC000F3C
  2755.     moveq    #0,d1
  2756.     subq.w    #1,d0
  2757. lbC000F40
  2758.     lsr.l    #1,d5
  2759.     roxl.l    #1,d1
  2760.     subq.b    #1,d7
  2761.     bne.s    lbC000F4E
  2762.     move.b    #$20,d7
  2763.     move.l    -(a0),d5
  2764. lbC000F4E
  2765.     dbf d0,lbC000F40
  2766.     rts
  2767. costam    dc.l    $090A0B0B
  2768.  
  2769.     blk.l    40,0
  2770.  
  2771. MintimeColor:
  2772.     blk.l    32,0
  2773. Mintime_Points_Color:
  2774.  dc.w    $0180,$0000,$0182,$0ddd,$0184,$0bbb,$0186,$0aaa
  2775.  dc.w    $0188,$0fff,$018a,$0fff,$018c,$0fff,$018e,$0fff
  2776.  dc.w    $0190,$00ff,$0192,$00ff,$0194,$00ff,$0196,$00ff
  2777.  dc.w    $0198,$0009,$019a,$000b,$019c,$000d,$019e,$000f
  2778.  dc.w    $01a0,$0ff0,$01a2,$0ff0,$01a4,$0ff0,$01a6,$0ff0
  2779.  dc.w    $01a8,$000a,$01aa,$00a0,$01ac,$0a00,$01ae,$00aa
  2780.  dc.w    $01b0,$0111,$01b2,$0333,$01b4,$0555,$01b6,$0666
  2781.  dc.w    $01b8,$0888,$01ba,$0aaa,$01bc,$0ccc,$01be,$0eee
  2782.  
  2783.  
  2784. MenuText:    ;   '                    '
  2785.     dc.b    0
  2786.     dc.b      3,' <REAL DESTRUCTION>',0
  2787.     dc.b     28,'    Gdynia 1992-3',0
  2788.     dc.b     70,' F1 - Player One',0
  2789.     dc.b     91,' F2 - Player Two',0
  2790.     dc.b    112,' F3 - Player Three',0
  2791.     dc.b    132,' F4 - HiScore',0
  2792.     dc.b    150,' F5 - Password ',0
  2793.     dc.b    170,' F6 - Credits',0
  2794.     dc.b    210,'F10 - Start',0
  2795.     dc.b    0,0
  2796.     even
  2797.  
  2798. ControlText:    ;   '                    '
  2799.     dc.b    0
  2800.     dc.b     60,' F1 - Joy Port 1',0
  2801.     dc.b     81,' F2 - Joy Port 0',0
  2802.     dc.b    102,' F3 - Keyboard',0
  2803.     dc.b    124,' F4 - COMPUTER',0
  2804.     dc.b    145,'*F5 - Redefine Keys',0
  2805.     dc.b    166,' F6 - No player',0
  2806.     dc.b    0,0
  2807.     even
  2808.  
  2809. WarningText:    ;   '                    '
  2810.     dc.b    0
  2811.     dc.b     40,'      Warning !',0
  2812.     dc.b     60,'    This is just',0
  2813.     dc.b     81,'    a preview of',0
  2814.     dc.b    103,'  coming full game',0
  2815.     dc.b    125,'        from',0
  2816.     dc.b    147,' <Real Destruction>',0
  2817.     dc.b    0,0
  2818.     even
  2819.  
  2820. GwiazdkaThings:    ;   '                    '
  2821.  
  2822.     dc.b    0
  2823.     dc.b    100,'   Things with *',0
  2824.     dc.b    121,'     dont work',0
  2825.     dc.b    0,0
  2826.     even
  2827.  
  2828. CreditsText0:
  2829.     dc.b    0
  2830.     dc.b     60,'    Light Cycle',0
  2831.     dc.b     85,'       is  a',0
  2832.     dc.b    110,' <Real Destruction>',0
  2833.     dc.b    132,'     Production',0
  2834.     dc.b    231,' Gdynia 1993.01.03',0
  2835.     dc.b    0,0
  2836.     even
  2837. CreditsText1:
  2838.     dc.b    0
  2839.     dc.b     99,'Credits:',0
  2840.     dc.b    120,'    Gfx:Sleeper/RD',0
  2841.     dc.b    141,'  Music:BFA/Suspect',0
  2842.     dc.b    162,'  Music:Dr.Stool/RD',0
  2843.     dc.b    183,'   Code:R.The.K./RD',0
  2844.     dc.b    0,0
  2845.     even
  2846.  
  2847. CreditsText2:
  2848.     dc.b    0
  2849.     dc.b      5,'    Instruction:',0
  2850.     dc.b     50,'Press:',0
  2851.     dc.b     75,'P     - Pause',0
  2852.     dc.b     96,'M     - Music ON/OFF',0
  2853.     dc.b    117,'L.SHIFT - Restart',0
  2854.     dc.b    138,'R.SHIFT - Speed Up',0
  2855.     dc.b    159,'SPACE - Quit Game',0
  2856.     dc.b    180,'Esc in menu for quit',0
  2857.     dc.b    201,'    to dos',0
  2858.     dc.b    0,0
  2859.     even
  2860.  
  2861. CreditsText3:    ;   '                    '
  2862.     dc.b    0
  2863.     dc.b      4,'If you wanna contact',0
  2864.     dc.b     23,' <Real Destruction>',0
  2865.     dc.b     45,'   Then write to:',0
  2866.     dc.b     66,'     [R.The.K.]',0
  2867.     dc.b    104,'  Rafal Konkolewski',0
  2868.     dc.b    125,' Nauczycielska 4/23',0
  2869.     dc.b    146,'       81-614',0
  2870.     dc.b    167,'       Gdynia',0
  2871.     dc.b    188,'       Poland',0
  2872.     dc.b    0,0
  2873.  
  2874. CreditsText4:    ;   '                    '
  2875.     dc.b    0
  2876.     dc.b      1,' Grettings fly to:',0
  2877.     dc.b      21,' BFA, Coza, Creator',0
  2878.     dc.b     42,'   Crupel Monster',0
  2879.     dc.b     63,'   Dr.Stool, Fenom',0
  2880.     dc.b     84,'  Glowa, Ifa, Kane',0
  2881.     dc.b    105,'     KWK, Locky',0
  2882.     dc.b    126,'  Malin, Michal M',0
  2883.     dc.b    147,'  Pillar, Piontal',0
  2884.     dc.b    168,'  Przemas, Rewizor',0
  2885.     dc.b    189,'SCA, Slipper, Sergey',0
  2886.     dc.b    210,'TCDS, Tetlox, Torba',0
  2887.     dc.b    231,'        XTD',0
  2888.  
  2889.     dc.b    0,0
  2890.     even
  2891.  
  2892. Lev0Text
  2893.     dc.b 0
  2894.     dc.b 160,'Loading Level ',0,0,0,0
  2895.  
  2896. LevelPass
  2897.  dc.b 0
  2898.  dc.b 120,' You may pass',0,0
  2899.  
  2900. Game_Over_Text:    ;   '                    '
  2901.     dc.b    0
  2902.     dc.b     50,' Its look like...',0
  2903.     dc.b     71,'     Game Over.',0
  2904.     dc.b    0,0
  2905.  
  2906. GO1Txt:        ;'                    '
  2907.     dc.b    0
  2908.     dc.b     92,'Player 1 -          ',0
  2909.     dc.b    0,0
  2910.  
  2911. GO2Txt:        ;'                    '
  2912.     dc.b    0
  2913.     dc.b    113,'Player 2 -          ',0
  2914.     dc.b    0,0
  2915.  
  2916. GO3Txt:        ;'                    '
  2917.     dc.b    0
  2918.     dc.b    135,'Player 3 -          ',0
  2919.     dc.b    0,0
  2920.  
  2921. Text:
  2922.     dc.b    0
  2923.     dc.b     70,'  Enter Password:'
  2924. p_text:
  2925.     dc.b    0
  2926.     dc.b    120,'    ____________    ',0,0
  2927.  
  2928. Password_Table:
  2929.  
  2930. ;Levels code
  2931.     dc.b    'alien 3_____'    ;0
  2932.     dc.b    'none________'    ;1
  2933.     dc.b    'lev2________'    ;2
  2934.     dc.b    'lev3________'    ;3
  2935.     dc.b    'lev4________'    ;4
  2936.     dc.b    'lev5________'    ;5
  2937.     dc.b    'lev6________'    ;6
  2938.     dc.b    'lev7________'    ;7
  2939.     dc.b    'lev8________'    ;8
  2940.     dc.b    'lev9________'    ;9
  2941.     dc.b    'lev10_______'    ;10
  2942.     dc.b    'MTV_________'    ;11 Special from here
  2943.     dc.b    'Loki________'    ;12
  2944.     dc.b    'R.The.K.____'    ;13
  2945.     dc.b    'Dr.Stool____'    ;14
  2946.     dc.b    'Piontal_____'    ;15
  2947.     dc.b    'Slipper_____'    ;16
  2948.     dc.b    'Shit________'    ;17
  2949.     dc.b    'fuck________'    ;18
  2950.     dc.b    'fuck off____'    ;19
  2951.     dc.b    'tcds________'    ;20
  2952.     dc.b    'Pillar______'    ;21
  2953.     dc.b    'Colombo_____'    ;22
  2954.     dc.b    'Kane________'    ;23
  2955.     dc.b    'Creator_____'    ;24
  2956.     dc.b    'SCA_________'    ;25
  2957.     dc.b    'Michal M____'    ;26
  2958.  
  2959. ilosc_chasel    equ 24+1
  2960.  
  2961. lowlevelbase:    dc.l    0
  2962. inthandle:    dc.l    0
  2963. lowlevelname:    dc.b    'lowlevel.library',0
  2964. DosName:    dc.b 'dos.library',0
  2965. Gfxname:    dc.b 'graphics.library',0
  2966. Key:    dc.b    0
  2967.  
  2968. *******************************************************************************
  2969. *                TEXTY DO HASE?L                      *
  2970. *******************************************************************************
  2971.  
  2972. ;texty passwordow
  2973. AlienTXT: ;'                    ' ;11
  2974.  dc.b    0
  2975.  dc.b     150,'    This is good.',0,0
  2976.  
  2977. EmptyT: ;'                    ' ;11
  2978.  dc.b    0
  2979.  dc.b     150,'not now',0,0
  2980.  
  2981. mtvTXT:   ;'                    ' ;11
  2982.     dc.b    0
  2983.  dc.b     110,'     I like MTV',0,0
  2984.  
  2985. LockyTXT:  ;'                    ' ;12
  2986.     dc.b    0
  2987.  dc.b     130,'    How how how...',0
  2988.  dc.b     152,' my brother is here.',0,0
  2989.  
  2990. PillarTXT:;'                    ' ;21
  2991.     dc.b    0
  2992.  dc.b     150,' Thanks for help.',0,0
  2993. * dc.b     173,'       ',0,0
  2994.  
  2995. KaneTXT ;'                    ' ;23
  2996.     dc.b    0
  2997.  dc.b     150,' Thanks for help.',0,0
  2998.  
  2999. CreatTXT ;'                    ' ;24
  3000.     dc.b    0
  3001.  dc.b    129,'!!!!!!!!!!!!!!!!!!!!',0
  3002.  dc.b    150,'     MOJE DYSKI',0
  3003.  dc.b    172,'!!!!!!!!!!!!!!!!!!!!',0,0
  3004.  
  3005.      even
  3006.  
  3007. Level0_FM:    dc.b    'lightcycle:Levels/Level0.pic.pp',0
  3008. Level1_FM:    dc.b    'lightcycle:levels/Level1.pic.pp',0
  3009. Level2_FM:    dc.b    'lightcycle:levels/Level2.pic.pp',0
  3010. Level3_FM:    dc.b    'lightcycle:levels/Level3.pic.pp',0
  3011. Level4_FM:    dc.b    'lightcycle:levels/Level4.pic.pp',0
  3012. Level5_FM:    dc.b    'lightcycle:levels/Level5.pic.pp',0
  3013. Level6_FM:    dc.b    'lightcycle:levels/Level6.pic.pp',0
  3014. Level7_FM:    dc.b    'lightcycle:levels/Level7.pic.pp',0
  3015. Level8_FM:    dc.b    'lightcycle:levels/Level8.pic.pp',0
  3016. Level9_FM:    dc.b    'lightcycle:levels/Level9.pic.pp',0
  3017. Level10_FM:    dc.b    'lightcycle:levels/Level10.pic.pp',0
  3018.  
  3019.     even
  3020.  
  3021. ***********************************
  3022. INTB_VERTB  equ   5                 ; for vblank interrupt
  3023. _AddIntServer    EQU    -168
  3024. _RemIntServer    EQU    -174
  3025.  
  3026. StartIrq:
  3027.     IFNE    MUSIC
  3028.     jsr    mt_init
  3029.     ENDIF
  3030.  
  3031.     EXEC
  3032.     lea    VBlankServer(pc),a1
  3033.     moveq    #INTB_VERTB,d0
  3034.     JUMP    AddIntServer    ; (intNumber,interrupt)
  3035. ***********************************
  3036. StopIrq:
  3037.     EXEC
  3038.     moveq    #INTB_VERTB,d0
  3039.     lea    VBlankServer(pc),a1
  3040.     CALL    RemIntServer    ; (intNumber,interrupt)
  3041.     IFNE    MUSIC
  3042.     bsr    mt_end
  3043.     ENDIF
  3044.     rts
  3045.  
  3046. *********************************
  3047. VBlankServer:
  3048.     dc.l    0,0    ;node succ,ln_Pred
  3049. ln_type1:dc.b    2,0    ;ln_Type,ln_Prio
  3050.     dc.l    IrqName    ;ln_name
  3051.     dc.l    0    ;irq data
  3052.     dc.l    Interrupt ;irq code
  3053.  
  3054. IrqName:    dc.b    'Light Cycle Music',0
  3055. *Irq
  3056.     even
  3057. Interrupt:
  3058.     movem.l    d0-a6,-(sp)
  3059.     lea    $dff000,a5
  3060.     tst.w    Music_On
  3061.     beq.w    No_Music
  3062.  
  3063.     IFNE    MUSIC
  3064.     jsr    mt_music
  3065.     ENDIF
  3066. No_Music:
  3067. ;    cmp.b    #$91,$bfec01    ;litera m wlancza,wylancza muzyke
  3068. ;    bne.s    Koniec_Przerwania
  3069. ;    move.b    #0,$bfec01
  3070. ;    not.w    Music_on
  3071. ;Nie_Zmiana_M:
  3072. ;    tst.w    Music_On
  3073. ;    bne.s    Koniec_Przerwania
  3074. ;    clr.w    $a8(a5)    ;?
  3075. ;    clr.w    $b8(a5)
  3076. ;    clr.w    $c8(a5)
  3077. ;    clr.w    $d8(a5)
  3078. ;    move.w    #$f,$96(a5)
  3079.  
  3080. Koniec_Przerwania:
  3081.     movem.l    (sp)+,d0-a6
  3082.     rts
  3083.  
  3084. Music_On:
  3085.     dc.w    -1
  3086.  
  3087. Seek:        MOVEL    Dos
  3088.         move.l    Handle(pc),d1
  3089.         moveq    #0,d2
  3090.         moveq    #OFFSET_END,d3
  3091.     CALL    Seek
  3092.         move.l    Handle(pc),d1
  3093.         moveq    #0,d2
  3094.         moveq    #OFFSET_BEGINNING,d3
  3095.     JUMP    Seek
  3096.  
  3097. FreeMem:
  3098.     tst.l    AllocMem
  3099.     beq.s    .nofree
  3100.  
  3101.     move.l    AllocMem(pc),a1
  3102.     move.l    FileSize(pc),d0
  3103.     EXEC
  3104.     CALL    FreeMem
  3105.     clr.l    AllocMem
  3106. .nofree
  3107.     rts
  3108.  
  3109. *    *    *    *    *    *    *    *    *
  3110. *    *    *    *    *    *    *    *    *
  3111.  
  3112.     IFNE    MUSIC
  3113.     include    'PT2.1A_Play+.s'
  3114.     ENDIF
  3115.  
  3116.     IF    SAVE=1
  3117. Fonts
  3118.     incbin    'slp2.fnt'
  3119.     ENDIF
  3120.  
  3121. *******************************************************************************
  3122.  
  3123. *                DANE:
  3124.  
  3125. *******************************************************************************
  3126.  
  3127. Dzes    ;tabela dziesiatek (wykopanie divsa
  3128.  dc.l 100000,10000,1000,100,10,1,0,0
  3129.  
  3130. No_Shift_Table:
  3131. ;Tabela kodow
  3132. ;bez shifta !
  3133.  DC.B    $FF,'`',$FD,'1',$FB,'2',$F9,'3',$F7,'4',$F5,'5',$F3,'6',$F1,'7'
  3134.  DC.B    $ef,'8',$ed,'9',$eb,'0',$e9,'-',$e7,'=',$e5,'\',$7b,'?',$df,'q'
  3135.  DC.B    $dd,'w',$db,'e',$d9,'r',$d7,'t',$d5,'y',$d3,'u',$d1,'i',$cf,'o'
  3136.  DC.B    $cd,'p',$cb,'[',$c9,']',$bf,'a',$bd,'s',$bb,'d',$b9,'f',$b7,'g'
  3137.  DC.B    $b5,'h',$b3,'j',$b1,'k',$af,'l',$ad,';',$ab,'''',$a9,'@',$9f,'<'
  3138.  DC.B    $9d,'z',$9b,'x',$99,'c',$97,'v',$95,'b',$93,'n',$91,'m',$8f,','
  3139.  DC.B    $8d,'.',$8b,'/',$4b,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3140.  DC.B    $81,'9',$6b,'-',$a5,'4',$a3,'5',$a1,'6',$43,'+',$c5,'1',$c3,'2'
  3141.  DC.B    $c1,'3',$e1,'0',$87,'.',$7f,' '
  3142.  
  3143. Shift_Table:
  3144. ;Tabela kodow
  3145. ;z shiftem
  3146.  DC.B    $FF,'~',$FD,'!',$FB,'"',$F9,'#',$F7,'$',$F5,'%',$F3,'^',$F1,'&'
  3147.  DC.B    $EF,'*',$ED,'(',$EB,')',$E9,'_',$E7,'+',$E5,'|',$7B,'?',$DF,'Q'
  3148.  DC.B    $DD,'W',$DB,'E',$D9,'R',$D7,'T',$D5,'Y',$D3,'U',$D1,'I',$CF,'O'
  3149.  DC.B    $CD,'P',$CB,'[',$C9,']',$BF,'A',$BD,'S',$BB,'D',$B9,'F',$B7,'G'
  3150.  DC.B    $B5,'H',$B3,'J',$B1,'K',$AF,'L',$AD,':',$AB,'"',$A9,'?',$9F,'>'
  3151.  DC.B    $9D,'Z',$9B,'X',$99,'C',$97,'V',$95,'B',$93,'N',$91,'M',$8F,'<'
  3152.  DC.B    $8D,'>',$8B,'?',$4B,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3153.  DC.B    $81,'9',$6B,'-',$A5,'4',$A3,'5',$A1,'6',$43,'+',$C5,'1',$C3,'2'
  3154.  DC.B    $C1,'3',$E1,'0',$87,'.',$7F,' '
  3155.  
  3156. *    %0001    Prawo
  3157. *    %0010    Lewo
  3158. *    %0100    Dol
  3159. *    %1000    Gora
  3160.  
  3161. AllocMem:    dc.l    0
  3162. FileSize:    dc.l    0
  3163. LastRuch:    dc.w    %0100
  3164. PosX:        dc.w    50
  3165. PosY:        dc.w    90
  3166. LastRuch2:    dc.w    %0001
  3167. PosX2:        dc.w    51
  3168. PosY2:        dc.w    185
  3169. LastRuch3:    dc.w    %0010
  3170. PosX3:        dc.w    100
  3171. PosY3:        dc.w    70
  3172.  
  3173. Lev_LastRuch1:    dc.w    0
  3174. Lev_PosX1:        dc.l    0
  3175. Lev_LastRuch2:    dc.w    0
  3176. Lev_PosX2:        dc.l    0
  3177. lev_LastRuch3:    dc.w    0
  3178. Lev_PosX3:        dc.l    0
  3179.  
  3180. *    %0001    JoyPort0
  3181. *    %0010    JoyPort1
  3182. *    %0100    Keyboard (Cursors+SPACE)
  3183. *    %1000    Computer (or computer help)
  3184. PlayerOne:    dc.w    %0010 ;w grze
  3185. PlayerTwo:    dc.w    %1000
  3186. PlayerThree:    dc.w    %1000
  3187.  
  3188. Live1:    dc.w    0
  3189. Live2:    dc.w    0
  3190. Live3:    dc.w    0
  3191.  
  3192. Player1_game:    dc.w    1    ;1 gra zero nie gra
  3193. Player2_game:    dc.w    1
  3194. Player3_game:    dc.w    1
  3195.  
  3196. Player1_Rgame:    dc.w    1    ;1 gra zero nie gra
  3197. Player2_Rgame:    dc.w    1
  3198. Player3_Rgame:    dc.w    1
  3199.  
  3200. Crash_in_LevelP1:    dc.w    0    ;jerzeli zniszczyles sie w tercji
  3201. Crash_in_LevelP2:    dc.w    0    ;to na koniec odejmuje zycia
  3202. Crash_in_LevelP3:    dc.w    0
  3203.  
  3204. Game_Over_Player_1:    dc.w    0    ;1 game over in this Level
  3205. Game_Over_Player_2:    dc.w    0
  3206. Game_Over_Player_3:    dc.w    0
  3207.  
  3208. LFlash1:    dc.w    0
  3209. LFlash2:    dc.w    0
  3210. LFlash3:    dc.w    0
  3211. Flash_1_loop:    dc.w    0
  3212. Flash_1_I_Loop:    dc.w    0
  3213. Flash_Color_1:    dc.w    0
  3214. Flash_2_loop:    dc.w    0
  3215. Flash_2_I_Loop:    dc.w    0
  3216. Flash_Color_2:    dc.w    0
  3217. Flash_3_loop:    dc.w    0
  3218. Flash_3_I_Loop:    dc.w    0
  3219. Flash_Color_3:    dc.w    0
  3220.  
  3221. Hi:            blk.b    6,0
  3222. PunktyPierwszego:    dc.l    0
  3223. PunktyDrugiego:        dc.l    0
  3224. PunktyTrzeciego:    dc.l    0
  3225.  
  3226. Player1_to_High:    dc.l    0    ;dla hi score
  3227. Player2_to_High:    dc.l    0
  3228. Player3_to_High:    dc.l    0
  3229.  
  3230. Level:    dc.w    0    ;numer Levela
  3231. Crash:    dc.w    0
  3232. MenuEnter: dc.w    0
  3233.  
  3234. DosBase:    dc.l    0
  3235. Handle:        dc.l    0
  3236.  
  3237.  
  3238. Speed_tm:    dc.w    2
  3239. Old_DMA:    dc.w    0
  3240. oldcop:        dc.l    0
  3241. opz        dc.w    0
  3242. Password_NR:    dc.w    0    ;znaleziony password
  3243. PasswordNr:    dc.w    0 ;zmienna pomocnicza
  3244. Password_Adr:    dc.l    0 ;adres do porownania
  3245. Shift:    dc.b    0    ;0-puszczony 1-wcisniety
  3246.     even
  3247. LoadAdr:    ds.b    30000    ;na podw spakowany iff
  3248.  
  3249.         SECTION        'COPPER',DATA_C
  3250.  
  3251.  
  3252. ***************************************
  3253. Copper:
  3254.     dc.w    $1fc,0
  3255.     dc.w    $0100,%0100001000000000    ;Bptlcontrol reg.
  3256.     dc.w    $0102,$0000    ;Hor-Scroll
  3257.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3258.     dc.w    $0108,$0078    ;Modulo    (Odd)
  3259.     dc.w    $010a,$0078    ;Modulo    (Exen)
  3260.     dc.w    $008e,$2981    ;DiwStrt
  3261.     dc.w    $0090,$29c1    ;DiwStop
  3262.     dc.w    $0092,$0038
  3263.     dc.w    $0094,$00d0
  3264.  
  3265. BitplanAdres
  3266.     dc.w    $00e0,$0006    ;1    ;Btpl Adr.
  3267.     dc.w    $00e2,$0000
  3268.     dc.w    $00e4,$0006    ;2
  3269.     dc.w    $00e6,$2800
  3270.     dc.w    $00e8,$0006    ;3
  3271.     dc.w    $00ea,$5000
  3272.     dc.w    $00ec,$0006    ;4
  3273.     dc.w    $00ee,$7800
  3274.  
  3275. ;Clear Sprites
  3276.  dc.l $1200000,$1220000,$1240000,$1260000
  3277.  dc.l $1280000,$12a0000,$12c0000,$12e0000
  3278.  dc.l $1300000,$1320000,$1340000,$1360000
  3279.  dc.l $1380000,$13a0000,$13c0000,$13e0000
  3280. ScreenColor:
  3281.  dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3282.  dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3283.     dc.l    -2
  3284.  
  3285. GameCopper:
  3286.     dc.w    $1fc,0
  3287.     dc.w    $0100,$5200    ;Bptlcontrol reg.
  3288.     dc.w    $0102,$0000    ;Hor-Scroll
  3289.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3290.     dc.w    $0108,$00a0    ;Modulo    (Odd)
  3291.     dc.w    $010a,$00a0    ;Modulo    (Exen)
  3292.     dc.w    $008e,$2981
  3293.     dc.w    $0090,$29c1
  3294.     dc.w    $0092,$0038
  3295.     dc.w    $0094,$00d0
  3296.  
  3297. BitplanADR:
  3298.     dc.w    $e0,0,$e2,0
  3299.     dc.w    $e4,0,$e6,0
  3300.     dc.w    $e8,0,$ea,0
  3301.     dc.w    $ec,0,$ee,0
  3302.     dc.w    $f0,0,$f2,0
  3303.     dc.w    $f4,0,$f6,0
  3304.  
  3305. ;clear sprites
  3306.  dc.l $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000,$12c0000,$12e0000
  3307.  dc.l $1300000,$1320000,$1340000,$1360000,$1380000,$13a0000,$13c0000,$13e0000
  3308.  
  3309. GameScreenColor:    ;nie wazne bierze kolory z obrazka !
  3310.  
  3311.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3312.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3313.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3314.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3315.  
  3316. *    dc.w    $3001,$fffe
  3317. *    dc.w    $0180,$0fff
  3318.  
  3319.     dc.w    $ffdf,$fffe    ;colory dolu i punktow
  3320.     dc.w    $1001,$fffe
  3321. Points_Color:
  3322.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3323.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3324.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3325.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3326.  
  3327.     dc.l    -2
  3328.  
  3329.  
  3330.     IFNE    SAVE
  3331. Tlo2
  3332.     incbin    'tlo2+.pic'
  3333.     IFNE    MUSIC
  3334. mt_data
  3335. ;    incbin    'mod.hoi_trance'
  3336.     incbin    'mod.voice from rv-125'
  3337. ;    incbin    'mod.soviet dog'
  3338.     ENDIF
  3339.  
  3340.     ENDIF
  3341.  
  3342.         SECTION    'SCREEN',BSS_C
  3343.     ds.b    40*20
  3344. Ekran:
  3345.     ds.b    40*256*5
  3346.     ds.b    40*20
  3347.  
  3348.         SECTION    'SCREEN',BSS_C
  3349. Iff:            ;gdzie dekompresowac
  3350.     ds.b    40*256*5
  3351.     ds.b    40*20
  3352.  
  3353. *    *    *    *    *    *    *    *    *
  3354.  
  3355.             ;DOS INCLUDE
  3356. _CurrentDir:    equ    -126
  3357. _Open:    equ    -30
  3358. _Close:    equ    -36
  3359. _Read:    equ    -42
  3360. _Write:    equ    -48
  3361. _Lock:    equ    -84
  3362. _UnLock:    equ    -90
  3363. _Examine:    equ    -102
  3364. OFFSET_END    equ    1
  3365. OFFSET_BEGINNING    equ    -1
  3366. _Seek    EQU    -66
  3367.  
  3368. ;EXEC
  3369. _AllocMem    EQU    -198
  3370. _FreeMem    EQU    -210
  3371. _OpenLibrary    EQU    -552
  3372. _CloseLibrary    EQU    -414
  3373. _OldOpenLibrary:    equ    -408
  3374.  
  3375.